side_proto/prost/side/
side.btcbridge.rs

1// @generated
2/// ParamsV1 defines the v1 parameters for the module.
3#[allow(clippy::derive_partial_eq_without_eq)]
4#[derive(Clone, PartialEq, ::prost::Message)]
5pub struct ParamsV1 {
6    /// The minimum number of confirmations required for the deposit transactions
7    #[prost(int32, tag = "1")]
8    pub deposit_confirmation_depth: i32,
9    /// The minimum number of confirmations required for the withdrawal transactions
10    #[prost(int32, tag = "2")]
11    pub withdraw_confirmation_depth: i32,
12    /// The allowed maximum depth for bitcoin block reorganization
13    #[prost(int32, tag = "3")]
14    pub max_reorg_depth: i32,
15    /// Indicates the maximum depth or distance from the latest block up to which transactions are considered for acceptance.
16    #[prost(uint64, tag = "4")]
17    pub max_acceptable_block_depth: u64,
18    /// The denomination of the voucher
19    #[prost(string, tag = "5")]
20    pub btc_voucher_denom: ::prost::alloc::string::String,
21    /// Indicates if deposit is enabled
22    #[prost(bool, tag = "6")]
23    pub deposit_enabled: bool,
24    /// Indicates if withdrawal is enabled
25    #[prost(bool, tag = "7")]
26    pub withdraw_enabled: bool,
27    /// Trusted relayers to submit bitcoin block headers
28    #[prost(string, repeated, tag = "8")]
29    pub trusted_btc_relayers: ::prost::alloc::vec::Vec<::prost::alloc::string::String>,
30    /// Trusted relayers for non-btc asset deposit
31    #[prost(string, repeated, tag = "9")]
32    pub trusted_non_btc_relayers: ::prost::alloc::vec::Vec<::prost::alloc::string::String>,
33    /// Trusted fee providers to submit bitcoin fee rate
34    #[prost(string, repeated, tag = "10")]
35    pub trusted_fee_providers: ::prost::alloc::vec::Vec<::prost::alloc::string::String>,
36    /// Period of validity for the fee rate
37    #[prost(int64, tag = "11")]
38    pub fee_rate_validity_period: i64,
39    /// Asset vaults
40    #[prost(message, repeated, tag = "12")]
41    pub vaults: ::prost::alloc::vec::Vec<Vault>,
42    /// Withdrawal params
43    #[prost(message, optional, tag = "13")]
44    pub withdraw_params: ::core::option::Option<WithdrawParams>,
45    /// Protocol limitations
46    #[prost(message, optional, tag = "14")]
47    pub protocol_limits: ::core::option::Option<ProtocolLimits>,
48    /// Protocol fees
49    #[prost(message, optional, tag = "15")]
50    pub protocol_fees: ::core::option::Option<ProtocolFees>,
51    /// TSS params
52    #[prost(message, optional, tag = "16")]
53    pub tss_params: ::core::option::Option<TssParams>,
54}
55impl ::prost::Name for ParamsV1 {
56    const NAME: &'static str = "ParamsV1";
57    const PACKAGE: &'static str = "side.btcbridge";
58    fn full_name() -> ::prost::alloc::string::String {
59        ::prost::alloc::format!("side.btcbridge.{}", Self::NAME)
60    }
61}
62/// Params defines the parameters for the module.
63#[allow(clippy::derive_partial_eq_without_eq)]
64#[derive(Clone, PartialEq, ::prost::Message)]
65pub struct Params {
66    /// The minimum number of confirmations required for the deposit transactions
67    #[prost(int32, tag = "1")]
68    pub deposit_confirmation_depth: i32,
69    /// The minimum number of confirmations required for the withdrawal transactions
70    #[prost(int32, tag = "2")]
71    pub withdraw_confirmation_depth: i32,
72    /// Indicates the maximum depth or distance from the latest block up to which transactions are considered for acceptance.
73    #[prost(uint64, tag = "3")]
74    pub max_acceptable_block_depth: u64,
75    /// The denomination of the voucher
76    #[prost(string, tag = "4")]
77    pub btc_voucher_denom: ::prost::alloc::string::String,
78    /// Indicates if deposit is enabled
79    #[prost(bool, tag = "5")]
80    pub deposit_enabled: bool,
81    /// Indicates if withdrawal is enabled
82    #[prost(bool, tag = "6")]
83    pub withdraw_enabled: bool,
84    /// Trusted relayers for non-btc asset deposit
85    #[prost(string, repeated, tag = "7")]
86    pub trusted_non_btc_relayers: ::prost::alloc::vec::Vec<::prost::alloc::string::String>,
87    /// Trusted fee providers to submit bitcoin fee rate
88    #[prost(string, repeated, tag = "8")]
89    pub trusted_fee_providers: ::prost::alloc::vec::Vec<::prost::alloc::string::String>,
90    /// Period of validity for the fee rate
91    #[prost(int64, tag = "9")]
92    pub fee_rate_validity_period: i64,
93    /// Asset vaults
94    #[prost(message, repeated, tag = "10")]
95    pub vaults: ::prost::alloc::vec::Vec<Vault>,
96    /// Withdrawal params
97    #[prost(message, optional, tag = "11")]
98    pub withdraw_params: ::core::option::Option<WithdrawParams>,
99    /// Protocol limitations
100    #[prost(message, optional, tag = "12")]
101    pub protocol_limits: ::core::option::Option<ProtocolLimits>,
102    /// Protocol fees
103    #[prost(message, optional, tag = "13")]
104    pub protocol_fees: ::core::option::Option<ProtocolFees>,
105    /// TSS params
106    #[prost(message, optional, tag = "14")]
107    pub tss_params: ::core::option::Option<TssParams>,
108    /// IBC params
109    #[prost(message, optional, tag = "15")]
110    pub ibc_params: ::core::option::Option<IbcParams>,
111    /// Rate limit params
112    #[prost(message, optional, tag = "16")]
113    pub rate_limit_params: ::core::option::Option<RateLimitParams>,
114}
115impl ::prost::Name for Params {
116    const NAME: &'static str = "Params";
117    const PACKAGE: &'static str = "side.btcbridge";
118    fn full_name() -> ::prost::alloc::string::String {
119        ::prost::alloc::format!("side.btcbridge.{}", Self::NAME)
120    }
121}
122/// Vault defines the asset vault
123#[allow(clippy::derive_partial_eq_without_eq)]
124#[derive(Clone, PartialEq, ::prost::Message)]
125pub struct Vault {
126    /// the vault address for deposit
127    #[prost(string, tag = "1")]
128    pub address: ::prost::alloc::string::String,
129    /// public key of the vault
130    #[prost(string, tag = "2")]
131    pub pub_key: ::prost::alloc::string::String,
132    /// the asset type supported by the vault
133    #[prost(enumeration = "AssetType", tag = "3")]
134    pub asset_type: i32,
135    /// version
136    #[prost(uint64, tag = "4")]
137    pub version: u64,
138}
139impl ::prost::Name for Vault {
140    const NAME: &'static str = "Vault";
141    const PACKAGE: &'static str = "side.btcbridge";
142    fn full_name() -> ::prost::alloc::string::String {
143        ::prost::alloc::format!("side.btcbridge.{}", Self::NAME)
144    }
145}
146#[allow(clippy::derive_partial_eq_without_eq)]
147#[derive(Clone, PartialEq, ::prost::Message)]
148pub struct WithdrawParams {
149    /// Maximum number of utxos used to build the signing request; O means unlimited
150    #[prost(uint32, tag = "1")]
151    pub max_utxo_num: u32,
152    /// Period for handling btc withdrawal requests
153    #[prost(int64, tag = "2")]
154    pub btc_batch_withdraw_period: i64,
155    /// Maximum number of btc withdrawal requests to be handled per batch
156    #[prost(uint32, tag = "3")]
157    pub max_btc_batch_withdraw_num: u32,
158}
159impl ::prost::Name for WithdrawParams {
160    const NAME: &'static str = "WithdrawParams";
161    const PACKAGE: &'static str = "side.btcbridge";
162    fn full_name() -> ::prost::alloc::string::String {
163        ::prost::alloc::format!("side.btcbridge.{}", Self::NAME)
164    }
165}
166/// ProtocolLimits defines the params related to the the protocol limitations
167#[allow(clippy::derive_partial_eq_without_eq)]
168#[derive(Clone, PartialEq, ::prost::Message)]
169pub struct ProtocolLimits {
170    /// The minimum deposit amount for btc in sat
171    #[prost(int64, tag = "1")]
172    pub btc_min_deposit: i64,
173    /// The minimum withdrawal amount for btc in sat
174    #[prost(int64, tag = "2")]
175    pub btc_min_withdraw: i64,
176    /// The maximum withdrawal amount for btc in sat
177    #[prost(int64, tag = "3")]
178    pub btc_max_withdraw: i64,
179}
180impl ::prost::Name for ProtocolLimits {
181    const NAME: &'static str = "ProtocolLimits";
182    const PACKAGE: &'static str = "side.btcbridge";
183    fn full_name() -> ::prost::alloc::string::String {
184        ::prost::alloc::format!("side.btcbridge.{}", Self::NAME)
185    }
186}
187/// ProtocolFees defines the params related to the protocol fees
188#[allow(clippy::derive_partial_eq_without_eq)]
189#[derive(Clone, PartialEq, ::prost::Message)]
190pub struct ProtocolFees {
191    /// Protocol fee amount for deposit in sat
192    #[prost(int64, tag = "1")]
193    pub deposit_fee: i64,
194    /// Protocol fee amount for withdrawal in sat
195    #[prost(int64, tag = "2")]
196    pub withdraw_fee: i64,
197    /// Protocol fee collector
198    #[prost(string, tag = "3")]
199    pub collector: ::prost::alloc::string::String,
200}
201impl ::prost::Name for ProtocolFees {
202    const NAME: &'static str = "ProtocolFees";
203    const PACKAGE: &'static str = "side.btcbridge";
204    fn full_name() -> ::prost::alloc::string::String {
205        ::prost::alloc::format!("side.btcbridge.{}", Self::NAME)
206    }
207}
208/// RateLimitParams defines the params related to the rate limit for BTC withdrawal
209#[allow(clippy::derive_partial_eq_without_eq)]
210#[derive(Clone, PartialEq, ::prost::Message)]
211pub struct RateLimitParams {
212    /// Global rate limit params
213    #[prost(message, optional, tag = "1")]
214    pub global_rate_limit_params: ::core::option::Option<GlobalRateLimitParams>,
215    /// Per address rate limit params
216    #[prost(message, optional, tag = "2")]
217    pub address_rate_limit_params: ::core::option::Option<AddressRateLimitParams>,
218}
219impl ::prost::Name for RateLimitParams {
220    const NAME: &'static str = "RateLimitParams";
221    const PACKAGE: &'static str = "side.btcbridge";
222    fn full_name() -> ::prost::alloc::string::String {
223        ::prost::alloc::format!("side.btcbridge.{}", Self::NAME)
224    }
225}
226/// GlobalRateLimitParams defines the global rate limit params
227#[allow(clippy::derive_partial_eq_without_eq)]
228#[derive(Clone, PartialEq, ::prost::Message)]
229pub struct GlobalRateLimitParams {
230    /// Duration of each rate limit epoch
231    #[prost(message, optional, tag = "1")]
232    pub period: ::core::option::Option<::tendermint_proto::google::protobuf::Duration>,
233    /// Maximum withdrawable supply percentage during the rate limit period; 100 means no limit
234    #[prost(uint32, tag = "2")]
235    pub supply_percentage_quota: u32,
236}
237impl ::prost::Name for GlobalRateLimitParams {
238    const NAME: &'static str = "GlobalRateLimitParams";
239    const PACKAGE: &'static str = "side.btcbridge";
240    fn full_name() -> ::prost::alloc::string::String {
241        ::prost::alloc::format!("side.btcbridge.{}", Self::NAME)
242    }
243}
244/// AddressRateLimitParams defines the per address rate limit params
245#[allow(clippy::derive_partial_eq_without_eq)]
246#[derive(Clone, PartialEq, ::prost::Message)]
247pub struct AddressRateLimitParams {
248    /// Duration of each rate limit epoch
249    #[prost(message, optional, tag = "1")]
250    pub period: ::core::option::Option<::tendermint_proto::google::protobuf::Duration>,
251    /// Maximum withdrawable amount during the rate limit period; 0 means no limit
252    #[prost(int64, tag = "2")]
253    pub quota: i64,
254}
255impl ::prost::Name for AddressRateLimitParams {
256    const NAME: &'static str = "AddressRateLimitParams";
257    const PACKAGE: &'static str = "side.btcbridge";
258    fn full_name() -> ::prost::alloc::string::String {
259        ::prost::alloc::format!("side.btcbridge.{}", Self::NAME)
260    }
261}
262/// TSSParams defines the params related to TSS
263#[allow(clippy::derive_partial_eq_without_eq)]
264#[derive(Clone, PartialEq, ::prost::Message)]
265pub struct TssParams {
266    /// Timeout duration for DKG request
267    #[prost(message, optional, tag = "1")]
268    pub dkg_timeout_period: ::core::option::Option<::tendermint_proto::google::protobuf::Duration>,
269    /// Transition period after which TSS participants update process is completed
270    #[prost(message, optional, tag = "2")]
271    pub participant_update_transition_period:
272        ::core::option::Option<::tendermint_proto::google::protobuf::Duration>,
273}
274impl ::prost::Name for TssParams {
275    const NAME: &'static str = "TSSParams";
276    const PACKAGE: &'static str = "side.btcbridge";
277    fn full_name() -> ::prost::alloc::string::String {
278        ::prost::alloc::format!("side.btcbridge.{}", Self::NAME)
279    }
280}
281/// IBCParams defines the params related to IBC
282#[allow(clippy::derive_partial_eq_without_eq)]
283#[derive(Clone, PartialEq, ::prost::Message)]
284pub struct IbcParams {
285    /// Timeout height offset relative to the current client height
286    #[prost(uint64, tag = "1")]
287    pub timeout_height_offset: u64,
288    /// Timeout duration relative to the current time
289    #[prost(message, optional, tag = "2")]
290    pub timeout_duration: ::core::option::Option<::tendermint_proto::google::protobuf::Duration>,
291}
292impl ::prost::Name for IbcParams {
293    const NAME: &'static str = "IBCParams";
294    const PACKAGE: &'static str = "side.btcbridge";
295    fn full_name() -> ::prost::alloc::string::String {
296        ::prost::alloc::format!("side.btcbridge.{}", Self::NAME)
297    }
298}
299/// AssetType defines the type of asset
300#[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)]
301#[repr(i32)]
302pub enum AssetType {
303    /// Unspecified asset type
304    Unspecified = 0,
305    /// BTC
306    Btc = 1,
307    /// BRC20: ordi, sats
308    Brc20 = 2,
309    /// RUNE: dog•go•to•the•moon
310    Runes = 3,
311}
312impl AssetType {
313    /// String value of the enum field names used in the ProtoBuf definition.
314    ///
315    /// The values are not transformed in any way and thus are considered stable
316    /// (if the ProtoBuf definition does not change) and safe for programmatic use.
317    pub fn as_str_name(&self) -> &'static str {
318        match self {
319            AssetType::Unspecified => "ASSET_TYPE_UNSPECIFIED",
320            AssetType::Btc => "ASSET_TYPE_BTC",
321            AssetType::Brc20 => "ASSET_TYPE_BRC20",
322            AssetType::Runes => "ASSET_TYPE_RUNES",
323        }
324    }
325    /// Creates an enum from field names used in the ProtoBuf definition.
326    pub fn from_str_name(value: &str) -> ::core::option::Option<Self> {
327        match value {
328            "ASSET_TYPE_UNSPECIFIED" => Some(Self::Unspecified),
329            "ASSET_TYPE_BTC" => Some(Self::Btc),
330            "ASSET_TYPE_BRC20" => Some(Self::Brc20),
331            "ASSET_TYPE_RUNES" => Some(Self::Runes),
332            _ => None,
333        }
334    }
335}
336/// Fee rate
337#[allow(clippy::derive_partial_eq_without_eq)]
338#[derive(Clone, PartialEq, ::prost::Message)]
339pub struct FeeRate {
340    /// fee rate
341    #[prost(int64, tag = "1")]
342    pub value: i64,
343    /// block height at which the fee rate is submitted
344    #[prost(int64, tag = "2")]
345    pub height: i64,
346}
347impl ::prost::Name for FeeRate {
348    const NAME: &'static str = "FeeRate";
349    const PACKAGE: &'static str = "side.btcbridge";
350    fn full_name() -> ::prost::alloc::string::String {
351        ::prost::alloc::format!("side.btcbridge.{}", Self::NAME)
352    }
353}
354/// Bitcoin Signing Request
355#[allow(clippy::derive_partial_eq_without_eq)]
356#[derive(Clone, PartialEq, ::prost::Message)]
357pub struct SigningRequest {
358    #[prost(string, tag = "1")]
359    pub address: ::prost::alloc::string::String,
360    #[prost(uint64, tag = "2")]
361    pub sequence: u64,
362    #[prost(enumeration = "AssetType", tag = "3")]
363    pub r#type: i32,
364    #[prost(string, tag = "4")]
365    pub txid: ::prost::alloc::string::String,
366    #[prost(string, tag = "5")]
367    pub psbt: ::prost::alloc::string::String,
368    #[prost(message, optional, tag = "6")]
369    pub creation_time: ::core::option::Option<::tendermint_proto::google::protobuf::Timestamp>,
370    #[prost(enumeration = "SigningStatus", tag = "7")]
371    pub status: i32,
372}
373impl ::prost::Name for SigningRequest {
374    const NAME: &'static str = "SigningRequest";
375    const PACKAGE: &'static str = "side.btcbridge";
376    fn full_name() -> ::prost::alloc::string::String {
377        ::prost::alloc::format!("side.btcbridge.{}", Self::NAME)
378    }
379}
380/// Compact Signing Request
381#[allow(clippy::derive_partial_eq_without_eq)]
382#[derive(Clone, PartialEq, ::prost::Message)]
383pub struct CompactSigningRequest {
384    #[prost(string, tag = "1")]
385    pub address: ::prost::alloc::string::String,
386    #[prost(uint64, tag = "2")]
387    pub sequence: u64,
388    #[prost(enumeration = "AssetType", tag = "3")]
389    pub r#type: i32,
390    #[prost(string, tag = "4")]
391    pub txid: ::prost::alloc::string::String,
392    #[prost(string, repeated, tag = "5")]
393    pub signers: ::prost::alloc::vec::Vec<::prost::alloc::string::String>,
394    #[prost(string, repeated, tag = "6")]
395    pub sig_hashes: ::prost::alloc::vec::Vec<::prost::alloc::string::String>,
396    #[prost(message, optional, tag = "7")]
397    pub creation_time: ::core::option::Option<::tendermint_proto::google::protobuf::Timestamp>,
398    #[prost(enumeration = "SigningStatus", tag = "8")]
399    pub status: i32,
400}
401impl ::prost::Name for CompactSigningRequest {
402    const NAME: &'static str = "CompactSigningRequest";
403    const PACKAGE: &'static str = "side.btcbridge";
404    fn full_name() -> ::prost::alloc::string::String {
405        ::prost::alloc::format!("side.btcbridge.{}", Self::NAME)
406    }
407}
408/// Withdrawal Request
409#[allow(clippy::derive_partial_eq_without_eq)]
410#[derive(Clone, PartialEq, ::prost::Message)]
411pub struct WithdrawRequest {
412    #[prost(string, tag = "1")]
413    pub address: ::prost::alloc::string::String,
414    #[prost(string, tag = "2")]
415    pub amount: ::prost::alloc::string::String,
416    #[prost(uint64, tag = "3")]
417    pub sequence: u64,
418    #[prost(string, tag = "4")]
419    pub txid: ::prost::alloc::string::String,
420}
421impl ::prost::Name for WithdrawRequest {
422    const NAME: &'static str = "WithdrawRequest";
423    const PACKAGE: &'static str = "side.btcbridge";
424    fn full_name() -> ::prost::alloc::string::String {
425        ::prost::alloc::format!("side.btcbridge.{}", Self::NAME)
426    }
427}
428/// Withdrawal request via IBC
429#[allow(clippy::derive_partial_eq_without_eq)]
430#[derive(Clone, PartialEq, ::prost::Message)]
431pub struct IbcWithdrawRequest {
432    #[prost(string, tag = "1")]
433    pub channel_id: ::prost::alloc::string::String,
434    #[prost(uint64, tag = "2")]
435    pub sequence: u64,
436    #[prost(string, tag = "3")]
437    pub address: ::prost::alloc::string::String,
438    #[prost(string, tag = "4")]
439    pub amount: ::prost::alloc::string::String,
440}
441impl ::prost::Name for IbcWithdrawRequest {
442    const NAME: &'static str = "IBCWithdrawRequest";
443    const PACKAGE: &'static str = "side.btcbridge";
444    fn full_name() -> ::prost::alloc::string::String {
445        ::prost::alloc::format!("side.btcbridge.{}", Self::NAME)
446    }
447}
448/// Rate limit for BTC withdrawal
449#[allow(clippy::derive_partial_eq_without_eq)]
450#[derive(Clone, PartialEq, ::prost::Message)]
451pub struct RateLimit {
452    #[prost(message, optional, tag = "1")]
453    pub global_rate_limit: ::core::option::Option<GlobalRateLimit>,
454    #[prost(message, optional, tag = "2")]
455    pub address_rate_limit: ::core::option::Option<AddressRateLimit>,
456}
457impl ::prost::Name for RateLimit {
458    const NAME: &'static str = "RateLimit";
459    const PACKAGE: &'static str = "side.btcbridge";
460    fn full_name() -> ::prost::alloc::string::String {
461        ::prost::alloc::format!("side.btcbridge.{}", Self::NAME)
462    }
463}
464/// Global rate limit for BTC withdrawal
465#[allow(clippy::derive_partial_eq_without_eq)]
466#[derive(Clone, PartialEq, ::prost::Message)]
467pub struct GlobalRateLimit {
468    /// Starting time for the current epoch
469    #[prost(message, optional, tag = "1")]
470    pub start_time: ::core::option::Option<::tendermint_proto::google::protobuf::Timestamp>,
471    /// End time for the current epoch
472    #[prost(message, optional, tag = "2")]
473    pub end_time: ::core::option::Option<::tendermint_proto::google::protobuf::Timestamp>,
474    /// Maximum withdrawable amount for the current epoch; 0 means no limit
475    #[prost(int64, tag = "3")]
476    pub quota: i64,
477    /// Used quota currently
478    #[prost(int64, tag = "4")]
479    pub used: i64,
480}
481impl ::prost::Name for GlobalRateLimit {
482    const NAME: &'static str = "GlobalRateLimit";
483    const PACKAGE: &'static str = "side.btcbridge";
484    fn full_name() -> ::prost::alloc::string::String {
485        ::prost::alloc::format!("side.btcbridge.{}", Self::NAME)
486    }
487}
488/// Per address rate limit for BTC withdrawal
489#[allow(clippy::derive_partial_eq_without_eq)]
490#[derive(Clone, PartialEq, ::prost::Message)]
491pub struct AddressRateLimit {
492    /// Starting time for the current epoch
493    #[prost(message, optional, tag = "1")]
494    pub start_time: ::core::option::Option<::tendermint_proto::google::protobuf::Timestamp>,
495    /// End time for the current epoch
496    #[prost(message, optional, tag = "2")]
497    pub end_time: ::core::option::Option<::tendermint_proto::google::protobuf::Timestamp>,
498    /// Maximum withdrawable amount for the current epoch; 0 means no limit
499    #[prost(int64, tag = "3")]
500    pub quota: i64,
501}
502impl ::prost::Name for AddressRateLimit {
503    const NAME: &'static str = "AddressRateLimit";
504    const PACKAGE: &'static str = "side.btcbridge";
505    fn full_name() -> ::prost::alloc::string::String {
506        ::prost::alloc::format!("side.btcbridge.{}", Self::NAME)
507    }
508}
509/// Per address rate limit details
510#[allow(clippy::derive_partial_eq_without_eq)]
511#[derive(Clone, PartialEq, ::prost::Message)]
512pub struct AddressRateLimitDetails {
513    /// Address
514    #[prost(string, tag = "1")]
515    pub address: ::prost::alloc::string::String,
516    /// Used quota currently
517    #[prost(int64, tag = "2")]
518    pub used: i64,
519}
520impl ::prost::Name for AddressRateLimitDetails {
521    const NAME: &'static str = "AddressRateLimitDetails";
522    const PACKAGE: &'static str = "side.btcbridge";
523    fn full_name() -> ::prost::alloc::string::String {
524        ::prost::alloc::format!("side.btcbridge.{}", Self::NAME)
525    }
526}
527/// Bitcoin UTXO
528#[allow(clippy::derive_partial_eq_without_eq)]
529#[derive(Clone, PartialEq, ::prost::Message)]
530pub struct Utxo {
531    #[prost(string, tag = "1")]
532    pub txid: ::prost::alloc::string::String,
533    #[prost(uint64, tag = "2")]
534    pub vout: u64,
535    #[prost(string, tag = "3")]
536    pub address: ::prost::alloc::string::String,
537    #[prost(uint64, tag = "4")]
538    pub amount: u64,
539    #[prost(uint64, tag = "5")]
540    pub height: u64,
541    #[prost(bytes = "vec", tag = "6")]
542    pub pub_key_script: ::prost::alloc::vec::Vec<u8>,
543    #[prost(bool, tag = "7")]
544    pub is_locked: bool,
545    /// rune balances associated with the UTXO
546    #[prost(message, repeated, tag = "8")]
547    pub runes: ::prost::alloc::vec::Vec<RuneBalance>,
548}
549impl ::prost::Name for Utxo {
550    const NAME: &'static str = "UTXO";
551    const PACKAGE: &'static str = "side.btcbridge";
552    fn full_name() -> ::prost::alloc::string::String {
553        ::prost::alloc::format!("side.btcbridge.{}", Self::NAME)
554    }
555}
556/// Rune Balance
557#[allow(clippy::derive_partial_eq_without_eq)]
558#[derive(Clone, PartialEq, ::prost::Message)]
559pub struct RuneBalance {
560    /// serialized rune id
561    #[prost(string, tag = "1")]
562    pub id: ::prost::alloc::string::String,
563    /// rune amount
564    #[prost(string, tag = "2")]
565    pub amount: ::prost::alloc::string::String,
566}
567impl ::prost::Name for RuneBalance {
568    const NAME: &'static str = "RuneBalance";
569    const PACKAGE: &'static str = "side.btcbridge";
570    fn full_name() -> ::prost::alloc::string::String {
571        ::prost::alloc::format!("side.btcbridge.{}", Self::NAME)
572    }
573}
574/// Rune ID
575#[allow(clippy::derive_partial_eq_without_eq)]
576#[derive(Clone, PartialEq, ::prost::Message)]
577pub struct RuneId {
578    /// block height
579    #[prost(uint64, tag = "1")]
580    pub block: u64,
581    /// tx index
582    #[prost(uint32, tag = "2")]
583    pub tx: u32,
584}
585impl ::prost::Name for RuneId {
586    const NAME: &'static str = "RuneId";
587    const PACKAGE: &'static str = "side.btcbridge";
588    fn full_name() -> ::prost::alloc::string::String {
589        ::prost::alloc::format!("side.btcbridge.{}", Self::NAME)
590    }
591}
592/// Rune Edict
593#[allow(clippy::derive_partial_eq_without_eq)]
594#[derive(Clone, PartialEq, ::prost::Message)]
595pub struct Edict {
596    #[prost(message, optional, tag = "1")]
597    pub id: ::core::option::Option<RuneId>,
598    #[prost(string, tag = "2")]
599    pub amount: ::prost::alloc::string::String,
600    #[prost(uint32, tag = "3")]
601    pub output: u32,
602}
603impl ::prost::Name for Edict {
604    const NAME: &'static str = "Edict";
605    const PACKAGE: &'static str = "side.btcbridge";
606    fn full_name() -> ::prost::alloc::string::String {
607        ::prost::alloc::format!("side.btcbridge.{}", Self::NAME)
608    }
609}
610/// BTC UTXO Consolidation
611#[allow(clippy::derive_partial_eq_without_eq)]
612#[derive(Clone, PartialEq, ::prost::Message)]
613pub struct BtcConsolidation {
614    /// maximum threshold of the btc value
615    #[prost(int64, tag = "1")]
616    pub target_threshold: i64,
617    /// maximum number of the utxos to be consolidated; 0 means all
618    #[prost(uint32, tag = "2")]
619    pub max_num: u32,
620}
621impl ::prost::Name for BtcConsolidation {
622    const NAME: &'static str = "BtcConsolidation";
623    const PACKAGE: &'static str = "side.btcbridge";
624    fn full_name() -> ::prost::alloc::string::String {
625        ::prost::alloc::format!("side.btcbridge.{}", Self::NAME)
626    }
627}
628/// Runes UTXO Consolidation
629#[allow(clippy::derive_partial_eq_without_eq)]
630#[derive(Clone, PartialEq, ::prost::Message)]
631pub struct RunesConsolidation {
632    /// rune id
633    #[prost(string, tag = "1")]
634    pub rune_id: ::prost::alloc::string::String,
635    /// maximum threshold of the corresponding rune balance
636    #[prost(string, tag = "2")]
637    pub target_threshold: ::prost::alloc::string::String,
638    /// maximum number of the utxos to be consolidated; 0 means all
639    #[prost(uint32, tag = "3")]
640    pub max_num: u32,
641}
642impl ::prost::Name for RunesConsolidation {
643    const NAME: &'static str = "RunesConsolidation";
644    const PACKAGE: &'static str = "side.btcbridge";
645    fn full_name() -> ::prost::alloc::string::String {
646        ::prost::alloc::format!("side.btcbridge.{}", Self::NAME)
647    }
648}
649/// DKG Participant
650#[allow(clippy::derive_partial_eq_without_eq)]
651#[derive(Clone, PartialEq, ::prost::Message)]
652pub struct DkgParticipant {
653    /// the optional moniker
654    #[prost(string, tag = "1")]
655    pub moniker: ::prost::alloc::string::String,
656    /// the optional operator address
657    #[prost(string, tag = "2")]
658    pub operator_address: ::prost::alloc::string::String,
659    /// participant consensus pub key
660    #[prost(string, tag = "3")]
661    pub consensus_pubkey: ::prost::alloc::string::String,
662}
663impl ::prost::Name for DkgParticipant {
664    const NAME: &'static str = "DKGParticipant";
665    const PACKAGE: &'static str = "side.btcbridge";
666    fn full_name() -> ::prost::alloc::string::String {
667        ::prost::alloc::format!("side.btcbridge.{}", Self::NAME)
668    }
669}
670/// DKG Request
671#[allow(clippy::derive_partial_eq_without_eq)]
672#[derive(Clone, PartialEq, ::prost::Message)]
673pub struct DkgRequest {
674    /// the unique request id
675    #[prost(uint64, tag = "1")]
676    pub id: u64,
677    /// participant set
678    #[prost(message, repeated, tag = "2")]
679    pub participants: ::prost::alloc::vec::Vec<DkgParticipant>,
680    /// threshold required to perform DKG
681    #[prost(uint32, tag = "3")]
682    pub threshold: u32,
683    /// asset types of vaults to be generated
684    #[prost(enumeration = "AssetType", repeated, tag = "4")]
685    pub vault_types: ::prost::alloc::vec::Vec<i32>,
686    /// indicates if transferring assets to the newly generated vaults when the DKG request is completed
687    #[prost(bool, tag = "5")]
688    pub enable_transfer: bool,
689    /// target number of the UTXOs to be transferred each time
690    #[prost(uint32, tag = "6")]
691    pub target_utxo_num: u32,
692    /// expiration time
693    #[prost(message, optional, tag = "7")]
694    pub expiration: ::core::option::Option<::tendermint_proto::google::protobuf::Timestamp>,
695    /// status
696    #[prost(enumeration = "DkgRequestStatus", tag = "8")]
697    pub status: i32,
698}
699impl ::prost::Name for DkgRequest {
700    const NAME: &'static str = "DKGRequest";
701    const PACKAGE: &'static str = "side.btcbridge";
702    fn full_name() -> ::prost::alloc::string::String {
703        ::prost::alloc::format!("side.btcbridge.{}", Self::NAME)
704    }
705}
706/// DKG Completion Request
707#[allow(clippy::derive_partial_eq_without_eq)]
708#[derive(Clone, PartialEq, ::prost::Message)]
709pub struct DkgCompletionRequest {
710    /// request id
711    #[prost(uint64, tag = "1")]
712    pub id: u64,
713    /// sender
714    #[prost(string, tag = "2")]
715    pub sender: ::prost::alloc::string::String,
716    /// new vaults generated by DKG
717    #[prost(string, repeated, tag = "3")]
718    pub vaults: ::prost::alloc::vec::Vec<::prost::alloc::string::String>,
719    /// participant consensus pub key
720    #[prost(string, tag = "4")]
721    pub consensus_pubkey: ::prost::alloc::string::String,
722    /// hex encoded participant signature
723    #[prost(string, tag = "5")]
724    pub signature: ::prost::alloc::string::String,
725}
726impl ::prost::Name for DkgCompletionRequest {
727    const NAME: &'static str = "DKGCompletionRequest";
728    const PACKAGE: &'static str = "side.btcbridge";
729    fn full_name() -> ::prost::alloc::string::String {
730        ::prost::alloc::format!("side.btcbridge.{}", Self::NAME)
731    }
732}
733/// Refreshing Request
734#[allow(clippy::derive_partial_eq_without_eq)]
735#[derive(Clone, PartialEq, ::prost::Message)]
736pub struct RefreshingRequest {
737    /// request id
738    #[prost(uint64, tag = "1")]
739    pub id: u64,
740    /// request id of the DKG corresponding to the key shares to be refreshed
741    #[prost(uint64, tag = "2")]
742    pub dkg_id: u64,
743    /// removed participant set
744    #[prost(string, repeated, tag = "3")]
745    pub removed_participants: ::prost::alloc::vec::Vec<::prost::alloc::string::String>,
746    /// new threshold
747    #[prost(uint32, tag = "4")]
748    pub threshold: u32,
749    /// expiration time
750    #[prost(message, optional, tag = "5")]
751    pub expiration_time: ::core::option::Option<::tendermint_proto::google::protobuf::Timestamp>,
752    /// status
753    #[prost(enumeration = "RefreshingStatus", tag = "6")]
754    pub status: i32,
755}
756impl ::prost::Name for RefreshingRequest {
757    const NAME: &'static str = "RefreshingRequest";
758    const PACKAGE: &'static str = "side.btcbridge";
759    fn full_name() -> ::prost::alloc::string::String {
760        ::prost::alloc::format!("side.btcbridge.{}", Self::NAME)
761    }
762}
763/// Refreshing Completion
764#[allow(clippy::derive_partial_eq_without_eq)]
765#[derive(Clone, PartialEq, ::prost::Message)]
766pub struct RefreshingCompletion {
767    /// request id
768    #[prost(uint64, tag = "1")]
769    pub id: u64,
770    /// sender
771    #[prost(string, tag = "2")]
772    pub sender: ::prost::alloc::string::String,
773    /// participant consensus pub key
774    #[prost(string, tag = "3")]
775    pub consensus_pubkey: ::prost::alloc::string::String,
776    /// hex encoded participant signature
777    #[prost(string, tag = "4")]
778    pub signature: ::prost::alloc::string::String,
779}
780impl ::prost::Name for RefreshingCompletion {
781    const NAME: &'static str = "RefreshingCompletion";
782    const PACKAGE: &'static str = "side.btcbridge";
783    fn full_name() -> ::prost::alloc::string::String {
784        ::prost::alloc::format!("side.btcbridge.{}", Self::NAME)
785    }
786}
787/// Bitcoin Signing Status
788#[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)]
789#[repr(i32)]
790pub enum SigningStatus {
791    /// SIGNING_STATUS_UNSPECIFIED - Default value, should not be used
792    Unspecified = 0,
793    /// SIGNING_STATUS_PENDING - The signing request is pending
794    Pending = 1,
795    /// SIGNING_STATUS_BROADCASTED - The signing request is broadcasted
796    Broadcasted = 2,
797    /// SIGNING_STATUS_CONFIRMED - The signing request is confirmed
798    Confirmed = 3,
799    /// SIGNING_STATUS_FAILED - The signing request failed to be signed or broadcast due to unexpected exceptions
800    Failed = 4,
801}
802impl SigningStatus {
803    /// String value of the enum field names used in the ProtoBuf definition.
804    ///
805    /// The values are not transformed in any way and thus are considered stable
806    /// (if the ProtoBuf definition does not change) and safe for programmatic use.
807    pub fn as_str_name(&self) -> &'static str {
808        match self {
809            SigningStatus::Unspecified => "SIGNING_STATUS_UNSPECIFIED",
810            SigningStatus::Pending => "SIGNING_STATUS_PENDING",
811            SigningStatus::Broadcasted => "SIGNING_STATUS_BROADCASTED",
812            SigningStatus::Confirmed => "SIGNING_STATUS_CONFIRMED",
813            SigningStatus::Failed => "SIGNING_STATUS_FAILED",
814        }
815    }
816    /// Creates an enum from field names used in the ProtoBuf definition.
817    pub fn from_str_name(value: &str) -> ::core::option::Option<Self> {
818        match value {
819            "SIGNING_STATUS_UNSPECIFIED" => Some(Self::Unspecified),
820            "SIGNING_STATUS_PENDING" => Some(Self::Pending),
821            "SIGNING_STATUS_BROADCASTED" => Some(Self::Broadcasted),
822            "SIGNING_STATUS_CONFIRMED" => Some(Self::Confirmed),
823            "SIGNING_STATUS_FAILED" => Some(Self::Failed),
824            _ => None,
825        }
826    }
827}
828#[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)]
829#[repr(i32)]
830pub enum DkgRequestStatus {
831    /// DKG_REQUEST_STATUS_UNSPECIFIED defines the unknown DKG request status
832    Unspecified = 0,
833    /// DKG_REQUEST_STATUS_PENDING defines the status of the DKG request which is pending
834    Pending = 1,
835    /// DKG_REQUEST_STATUS_COMPLETED defines the status of the DKG request which is completed
836    Completed = 2,
837    /// DKG_REQUEST_STATUS_FAILED defines the status of the DKG request which failed
838    Failed = 3,
839    /// DKG_REQUEST_STATUS_TIMEDOUT defines the status of the DKG request which timed out
840    Timedout = 4,
841}
842impl DkgRequestStatus {
843    /// String value of the enum field names used in the ProtoBuf definition.
844    ///
845    /// The values are not transformed in any way and thus are considered stable
846    /// (if the ProtoBuf definition does not change) and safe for programmatic use.
847    pub fn as_str_name(&self) -> &'static str {
848        match self {
849            DkgRequestStatus::Unspecified => "DKG_REQUEST_STATUS_UNSPECIFIED",
850            DkgRequestStatus::Pending => "DKG_REQUEST_STATUS_PENDING",
851            DkgRequestStatus::Completed => "DKG_REQUEST_STATUS_COMPLETED",
852            DkgRequestStatus::Failed => "DKG_REQUEST_STATUS_FAILED",
853            DkgRequestStatus::Timedout => "DKG_REQUEST_STATUS_TIMEDOUT",
854        }
855    }
856    /// Creates an enum from field names used in the ProtoBuf definition.
857    pub fn from_str_name(value: &str) -> ::core::option::Option<Self> {
858        match value {
859            "DKG_REQUEST_STATUS_UNSPECIFIED" => Some(Self::Unspecified),
860            "DKG_REQUEST_STATUS_PENDING" => Some(Self::Pending),
861            "DKG_REQUEST_STATUS_COMPLETED" => Some(Self::Completed),
862            "DKG_REQUEST_STATUS_FAILED" => Some(Self::Failed),
863            "DKG_REQUEST_STATUS_TIMEDOUT" => Some(Self::Timedout),
864            _ => None,
865        }
866    }
867}
868/// Refreshing Status
869#[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)]
870#[repr(i32)]
871pub enum RefreshingStatus {
872    /// REFRESHING_STATUS_UNSPECIFIED defines the unknown refreshing status
873    Unspecified = 0,
874    /// REFRESHING_STATUS_PENDING defines the status of the refreshing request which is pending
875    Pending = 1,
876    /// REFRESHING_STATUS_COMPLETED defines the status of the refreshing request which is completed
877    Completed = 2,
878    /// REFRESHING_STATUS_TIMEDOUT defines the status of the refreshing request which timed out
879    Timedout = 3,
880}
881impl RefreshingStatus {
882    /// String value of the enum field names used in the ProtoBuf definition.
883    ///
884    /// The values are not transformed in any way and thus are considered stable
885    /// (if the ProtoBuf definition does not change) and safe for programmatic use.
886    pub fn as_str_name(&self) -> &'static str {
887        match self {
888            RefreshingStatus::Unspecified => "REFRESHING_STATUS_UNSPECIFIED",
889            RefreshingStatus::Pending => "REFRESHING_STATUS_PENDING",
890            RefreshingStatus::Completed => "REFRESHING_STATUS_COMPLETED",
891            RefreshingStatus::Timedout => "REFRESHING_STATUS_TIMEDOUT",
892        }
893    }
894    /// Creates an enum from field names used in the ProtoBuf definition.
895    pub fn from_str_name(value: &str) -> ::core::option::Option<Self> {
896        match value {
897            "REFRESHING_STATUS_UNSPECIFIED" => Some(Self::Unspecified),
898            "REFRESHING_STATUS_PENDING" => Some(Self::Pending),
899            "REFRESHING_STATUS_COMPLETED" => Some(Self::Completed),
900            "REFRESHING_STATUS_TIMEDOUT" => Some(Self::Timedout),
901            _ => None,
902        }
903    }
904}
905/// GenesisState defines the btc bridge module's genesis state.
906#[allow(clippy::derive_partial_eq_without_eq)]
907#[derive(Clone, PartialEq, ::prost::Message)]
908pub struct GenesisState {
909    #[prost(message, optional, tag = "1")]
910    pub params: ::core::option::Option<Params>,
911    #[prost(message, repeated, tag = "2")]
912    pub utxos: ::prost::alloc::vec::Vec<Utxo>,
913    #[prost(message, optional, tag = "3")]
914    pub dkg_request: ::core::option::Option<DkgRequest>,
915}
916impl ::prost::Name for GenesisState {
917    const NAME: &'static str = "GenesisState";
918    const PACKAGE: &'static str = "side.btcbridge";
919    fn full_name() -> ::prost::alloc::string::String {
920        ::prost::alloc::format!("side.btcbridge.{}", Self::NAME)
921    }
922}
923/// QueryWithdrawRequestsByAddressRequest is request type for the Query/WithdrawRequestsByAddress RPC method.
924#[allow(clippy::derive_partial_eq_without_eq)]
925#[derive(Clone, PartialEq, ::prost::Message)]
926pub struct QueryWithdrawRequestsByAddressRequest {
927    #[prost(string, tag = "1")]
928    pub address: ::prost::alloc::string::String,
929    #[prost(message, optional, tag = "2")]
930    pub pagination: ::core::option::Option<super::super::cosmos::base::query::v1beta1::PageRequest>,
931}
932impl ::prost::Name for QueryWithdrawRequestsByAddressRequest {
933    const NAME: &'static str = "QueryWithdrawRequestsByAddressRequest";
934    const PACKAGE: &'static str = "side.btcbridge";
935    fn full_name() -> ::prost::alloc::string::String {
936        ::prost::alloc::format!("side.btcbridge.{}", Self::NAME)
937    }
938}
939/// QueryWithdrawRequestsByAddressResponse is response type for the Query/WithdrawRequestsByAddress RPC method.
940#[allow(clippy::derive_partial_eq_without_eq)]
941#[derive(Clone, PartialEq, ::prost::Message)]
942pub struct QueryWithdrawRequestsByAddressResponse {
943    #[prost(message, repeated, tag = "1")]
944    pub requests: ::prost::alloc::vec::Vec<WithdrawRequest>,
945    #[prost(message, optional, tag = "2")]
946    pub pagination:
947        ::core::option::Option<super::super::cosmos::base::query::v1beta1::PageResponse>,
948}
949impl ::prost::Name for QueryWithdrawRequestsByAddressResponse {
950    const NAME: &'static str = "QueryWithdrawRequestsByAddressResponse";
951    const PACKAGE: &'static str = "side.btcbridge";
952    fn full_name() -> ::prost::alloc::string::String {
953        ::prost::alloc::format!("side.btcbridge.{}", Self::NAME)
954    }
955}
956/// QueryWithdrawRequestsByTxHashRequest is request type for the Query/WithdrawRequestsByTxHash RPC method.
957#[allow(clippy::derive_partial_eq_without_eq)]
958#[derive(Clone, PartialEq, ::prost::Message)]
959pub struct QueryWithdrawRequestsByTxHashRequest {
960    #[prost(string, tag = "1")]
961    pub txid: ::prost::alloc::string::String,
962}
963impl ::prost::Name for QueryWithdrawRequestsByTxHashRequest {
964    const NAME: &'static str = "QueryWithdrawRequestsByTxHashRequest";
965    const PACKAGE: &'static str = "side.btcbridge";
966    fn full_name() -> ::prost::alloc::string::String {
967        ::prost::alloc::format!("side.btcbridge.{}", Self::NAME)
968    }
969}
970/// QueryWithdrawRequestsByTxHashResponse is response type for the Query/WithdrawRequestsByTxHash RPC method.
971#[allow(clippy::derive_partial_eq_without_eq)]
972#[derive(Clone, PartialEq, ::prost::Message)]
973pub struct QueryWithdrawRequestsByTxHashResponse {
974    #[prost(message, repeated, tag = "1")]
975    pub requests: ::prost::alloc::vec::Vec<WithdrawRequest>,
976}
977impl ::prost::Name for QueryWithdrawRequestsByTxHashResponse {
978    const NAME: &'static str = "QueryWithdrawRequestsByTxHashResponse";
979    const PACKAGE: &'static str = "side.btcbridge";
980    fn full_name() -> ::prost::alloc::string::String {
981        ::prost::alloc::format!("side.btcbridge.{}", Self::NAME)
982    }
983}
984/// QueryPendingBtcWithdrawRequestsRequest is request type for the Query/PendingBtcWithdrawRequests RPC method.
985#[allow(clippy::derive_partial_eq_without_eq)]
986#[derive(Clone, PartialEq, ::prost::Message)]
987pub struct QueryPendingBtcWithdrawRequestsRequest {
988    #[prost(message, optional, tag = "1")]
989    pub pagination: ::core::option::Option<super::super::cosmos::base::query::v1beta1::PageRequest>,
990}
991impl ::prost::Name for QueryPendingBtcWithdrawRequestsRequest {
992    const NAME: &'static str = "QueryPendingBtcWithdrawRequestsRequest";
993    const PACKAGE: &'static str = "side.btcbridge";
994    fn full_name() -> ::prost::alloc::string::String {
995        ::prost::alloc::format!("side.btcbridge.{}", Self::NAME)
996    }
997}
998/// QueryPendingBtcWithdrawRequestsResponse is response type for the Query/PendingBtcWithdrawRequests RPC method.
999#[allow(clippy::derive_partial_eq_without_eq)]
1000#[derive(Clone, PartialEq, ::prost::Message)]
1001pub struct QueryPendingBtcWithdrawRequestsResponse {
1002    #[prost(message, repeated, tag = "1")]
1003    pub requests: ::prost::alloc::vec::Vec<WithdrawRequest>,
1004    #[prost(message, optional, tag = "2")]
1005    pub pagination:
1006        ::core::option::Option<super::super::cosmos::base::query::v1beta1::PageResponse>,
1007}
1008impl ::prost::Name for QueryPendingBtcWithdrawRequestsResponse {
1009    const NAME: &'static str = "QueryPendingBtcWithdrawRequestsResponse";
1010    const PACKAGE: &'static str = "side.btcbridge";
1011    fn full_name() -> ::prost::alloc::string::String {
1012        ::prost::alloc::format!("side.btcbridge.{}", Self::NAME)
1013    }
1014}
1015/// QuerySigningRequestRequest is request type for the Query/SigningRequest RPC method.
1016#[allow(clippy::derive_partial_eq_without_eq)]
1017#[derive(Clone, PartialEq, ::prost::Message)]
1018pub struct QuerySigningRequestRequest {
1019    #[prost(uint64, tag = "1")]
1020    pub sequence: u64,
1021}
1022impl ::prost::Name for QuerySigningRequestRequest {
1023    const NAME: &'static str = "QuerySigningRequestRequest";
1024    const PACKAGE: &'static str = "side.btcbridge";
1025    fn full_name() -> ::prost::alloc::string::String {
1026        ::prost::alloc::format!("side.btcbridge.{}", Self::NAME)
1027    }
1028}
1029/// QuerySigningRequestResponse is response type for the Query/SigningRequest RPC method.
1030#[allow(clippy::derive_partial_eq_without_eq)]
1031#[derive(Clone, PartialEq, ::prost::Message)]
1032pub struct QuerySigningRequestResponse {
1033    #[prost(message, optional, tag = "1")]
1034    pub request: ::core::option::Option<SigningRequest>,
1035}
1036impl ::prost::Name for QuerySigningRequestResponse {
1037    const NAME: &'static str = "QuerySigningRequestResponse";
1038    const PACKAGE: &'static str = "side.btcbridge";
1039    fn full_name() -> ::prost::alloc::string::String {
1040        ::prost::alloc::format!("side.btcbridge.{}", Self::NAME)
1041    }
1042}
1043/// QuerySigningRequestsRequest is request type for the Query/SigningRequests RPC method.
1044#[allow(clippy::derive_partial_eq_without_eq)]
1045#[derive(Clone, PartialEq, ::prost::Message)]
1046pub struct QuerySigningRequestsRequest {
1047    #[prost(enumeration = "SigningStatus", tag = "1")]
1048    pub status: i32,
1049    #[prost(message, optional, tag = "2")]
1050    pub pagination: ::core::option::Option<super::super::cosmos::base::query::v1beta1::PageRequest>,
1051}
1052impl ::prost::Name for QuerySigningRequestsRequest {
1053    const NAME: &'static str = "QuerySigningRequestsRequest";
1054    const PACKAGE: &'static str = "side.btcbridge";
1055    fn full_name() -> ::prost::alloc::string::String {
1056        ::prost::alloc::format!("side.btcbridge.{}", Self::NAME)
1057    }
1058}
1059/// QuerySigningRequestsResponse is response type for the Query/SigningRequests RPC method.
1060#[allow(clippy::derive_partial_eq_without_eq)]
1061#[derive(Clone, PartialEq, ::prost::Message)]
1062pub struct QuerySigningRequestsResponse {
1063    #[prost(message, repeated, tag = "1")]
1064    pub requests: ::prost::alloc::vec::Vec<SigningRequest>,
1065    #[prost(message, optional, tag = "2")]
1066    pub pagination:
1067        ::core::option::Option<super::super::cosmos::base::query::v1beta1::PageResponse>,
1068}
1069impl ::prost::Name for QuerySigningRequestsResponse {
1070    const NAME: &'static str = "QuerySigningRequestsResponse";
1071    const PACKAGE: &'static str = "side.btcbridge";
1072    fn full_name() -> ::prost::alloc::string::String {
1073        ::prost::alloc::format!("side.btcbridge.{}", Self::NAME)
1074    }
1075}
1076/// QuerySigningRequestsByAddressRequest is request type for the Query/SigningRequestsByAddress RPC method.
1077#[allow(clippy::derive_partial_eq_without_eq)]
1078#[derive(Clone, PartialEq, ::prost::Message)]
1079pub struct QuerySigningRequestsByAddressRequest {
1080    #[prost(string, tag = "1")]
1081    pub address: ::prost::alloc::string::String,
1082    #[prost(message, optional, tag = "2")]
1083    pub pagination: ::core::option::Option<super::super::cosmos::base::query::v1beta1::PageRequest>,
1084}
1085impl ::prost::Name for QuerySigningRequestsByAddressRequest {
1086    const NAME: &'static str = "QuerySigningRequestsByAddressRequest";
1087    const PACKAGE: &'static str = "side.btcbridge";
1088    fn full_name() -> ::prost::alloc::string::String {
1089        ::prost::alloc::format!("side.btcbridge.{}", Self::NAME)
1090    }
1091}
1092/// QuerySigningRequestsByAddressResponse is response type for the Query/SigningRequestsByAddress RPC method.
1093#[allow(clippy::derive_partial_eq_without_eq)]
1094#[derive(Clone, PartialEq, ::prost::Message)]
1095pub struct QuerySigningRequestsByAddressResponse {
1096    #[prost(message, repeated, tag = "1")]
1097    pub requests: ::prost::alloc::vec::Vec<SigningRequest>,
1098    #[prost(message, optional, tag = "2")]
1099    pub pagination:
1100        ::core::option::Option<super::super::cosmos::base::query::v1beta1::PageResponse>,
1101}
1102impl ::prost::Name for QuerySigningRequestsByAddressResponse {
1103    const NAME: &'static str = "QuerySigningRequestsByAddressResponse";
1104    const PACKAGE: &'static str = "side.btcbridge";
1105    fn full_name() -> ::prost::alloc::string::String {
1106        ::prost::alloc::format!("side.btcbridge.{}", Self::NAME)
1107    }
1108}
1109/// QuerySigningRequestByTxHashRequest is request type for the Query/SigningRequestByTxHash RPC method.
1110#[allow(clippy::derive_partial_eq_without_eq)]
1111#[derive(Clone, PartialEq, ::prost::Message)]
1112pub struct QuerySigningRequestByTxHashRequest {
1113    #[prost(string, tag = "1")]
1114    pub txid: ::prost::alloc::string::String,
1115}
1116impl ::prost::Name for QuerySigningRequestByTxHashRequest {
1117    const NAME: &'static str = "QuerySigningRequestByTxHashRequest";
1118    const PACKAGE: &'static str = "side.btcbridge";
1119    fn full_name() -> ::prost::alloc::string::String {
1120        ::prost::alloc::format!("side.btcbridge.{}", Self::NAME)
1121    }
1122}
1123/// QuerySigningRequestByTxHashResponse is response type for the Query/SigningRequestByTxHashResponse RPC method.
1124#[allow(clippy::derive_partial_eq_without_eq)]
1125#[derive(Clone, PartialEq, ::prost::Message)]
1126pub struct QuerySigningRequestByTxHashResponse {
1127    #[prost(message, optional, tag = "1")]
1128    pub request: ::core::option::Option<SigningRequest>,
1129}
1130impl ::prost::Name for QuerySigningRequestByTxHashResponse {
1131    const NAME: &'static str = "QuerySigningRequestByTxHashResponse";
1132    const PACKAGE: &'static str = "side.btcbridge";
1133    fn full_name() -> ::prost::alloc::string::String {
1134        ::prost::alloc::format!("side.btcbridge.{}", Self::NAME)
1135    }
1136}
1137/// QueryPendingSigningRequestsRequest is request type for the Query/PendingSigningRequests RPC method.
1138#[allow(clippy::derive_partial_eq_without_eq)]
1139#[derive(Clone, PartialEq, ::prost::Message)]
1140pub struct QueryPendingSigningRequestsRequest {
1141    #[prost(message, optional, tag = "1")]
1142    pub pagination: ::core::option::Option<super::super::cosmos::base::query::v1beta1::PageRequest>,
1143}
1144impl ::prost::Name for QueryPendingSigningRequestsRequest {
1145    const NAME: &'static str = "QueryPendingSigningRequestsRequest";
1146    const PACKAGE: &'static str = "side.btcbridge";
1147    fn full_name() -> ::prost::alloc::string::String {
1148        ::prost::alloc::format!("side.btcbridge.{}", Self::NAME)
1149    }
1150}
1151/// QueryPendingSigningRequestsResponse is response type for the Query/PendingSigningRequests RPC method.
1152#[allow(clippy::derive_partial_eq_without_eq)]
1153#[derive(Clone, PartialEq, ::prost::Message)]
1154pub struct QueryPendingSigningRequestsResponse {
1155    #[prost(message, repeated, tag = "1")]
1156    pub requests: ::prost::alloc::vec::Vec<CompactSigningRequest>,
1157    #[prost(message, optional, tag = "2")]
1158    pub pagination:
1159        ::core::option::Option<super::super::cosmos::base::query::v1beta1::PageResponse>,
1160}
1161impl ::prost::Name for QueryPendingSigningRequestsResponse {
1162    const NAME: &'static str = "QueryPendingSigningRequestsResponse";
1163    const PACKAGE: &'static str = "side.btcbridge";
1164    fn full_name() -> ::prost::alloc::string::String {
1165        ::prost::alloc::format!("side.btcbridge.{}", Self::NAME)
1166    }
1167}
1168/// QueryFeeRateRequest is request type for the Query/FeeRate RPC method.
1169#[allow(clippy::derive_partial_eq_without_eq)]
1170#[derive(Clone, PartialEq, ::prost::Message)]
1171pub struct QueryFeeRateRequest {}
1172impl ::prost::Name for QueryFeeRateRequest {
1173    const NAME: &'static str = "QueryFeeRateRequest";
1174    const PACKAGE: &'static str = "side.btcbridge";
1175    fn full_name() -> ::prost::alloc::string::String {
1176        ::prost::alloc::format!("side.btcbridge.{}", Self::NAME)
1177    }
1178}
1179/// QueryFeeRateResponse is response type for the Query/FeeRate RPC method.
1180#[allow(clippy::derive_partial_eq_without_eq)]
1181#[derive(Clone, PartialEq, ::prost::Message)]
1182pub struct QueryFeeRateResponse {
1183    #[prost(message, optional, tag = "1")]
1184    pub fee_rate: ::core::option::Option<FeeRate>,
1185}
1186impl ::prost::Name for QueryFeeRateResponse {
1187    const NAME: &'static str = "QueryFeeRateResponse";
1188    const PACKAGE: &'static str = "side.btcbridge";
1189    fn full_name() -> ::prost::alloc::string::String {
1190        ::prost::alloc::format!("side.btcbridge.{}", Self::NAME)
1191    }
1192}
1193/// QueryWithdrawalNetworkFeeRequest is request type for the Query/WithdrawalNetworkFee RPC method.
1194#[allow(clippy::derive_partial_eq_without_eq)]
1195#[derive(Clone, PartialEq, ::prost::Message)]
1196pub struct QueryWithdrawalNetworkFeeRequest {
1197    #[prost(string, tag = "1")]
1198    pub address: ::prost::alloc::string::String,
1199    #[prost(string, tag = "2")]
1200    pub amount: ::prost::alloc::string::String,
1201    #[prost(int64, tag = "3")]
1202    pub fee_rate: i64,
1203}
1204impl ::prost::Name for QueryWithdrawalNetworkFeeRequest {
1205    const NAME: &'static str = "QueryWithdrawalNetworkFeeRequest";
1206    const PACKAGE: &'static str = "side.btcbridge";
1207    fn full_name() -> ::prost::alloc::string::String {
1208        ::prost::alloc::format!("side.btcbridge.{}", Self::NAME)
1209    }
1210}
1211/// QueryWithdrawalNetworkFeeResponse is response type for the Query/WithdrawalNetworkFee RPC method.
1212#[allow(clippy::derive_partial_eq_without_eq)]
1213#[derive(Clone, PartialEq, ::prost::Message)]
1214pub struct QueryWithdrawalNetworkFeeResponse {
1215    #[prost(int64, tag = "1")]
1216    pub fee_rate: i64,
1217    #[prost(string, tag = "2")]
1218    pub fee: ::prost::alloc::string::String,
1219}
1220impl ::prost::Name for QueryWithdrawalNetworkFeeResponse {
1221    const NAME: &'static str = "QueryWithdrawalNetworkFeeResponse";
1222    const PACKAGE: &'static str = "side.btcbridge";
1223    fn full_name() -> ::prost::alloc::string::String {
1224        ::prost::alloc::format!("side.btcbridge.{}", Self::NAME)
1225    }
1226}
1227/// QueryParamsRequest is request type for the Query/Params RPC method.
1228#[allow(clippy::derive_partial_eq_without_eq)]
1229#[derive(Clone, PartialEq, ::prost::Message)]
1230pub struct QueryParamsRequest {}
1231impl ::prost::Name for QueryParamsRequest {
1232    const NAME: &'static str = "QueryParamsRequest";
1233    const PACKAGE: &'static str = "side.btcbridge";
1234    fn full_name() -> ::prost::alloc::string::String {
1235        ::prost::alloc::format!("side.btcbridge.{}", Self::NAME)
1236    }
1237}
1238/// QueryParamsResponse is response type for the Query/Params RPC method.
1239#[allow(clippy::derive_partial_eq_without_eq)]
1240#[derive(Clone, PartialEq, ::prost::Message)]
1241pub struct QueryParamsResponse {
1242    /// params holds all the parameters of this module.
1243    #[prost(message, optional, tag = "1")]
1244    pub params: ::core::option::Option<Params>,
1245}
1246impl ::prost::Name for QueryParamsResponse {
1247    const NAME: &'static str = "QueryParamsResponse";
1248    const PACKAGE: &'static str = "side.btcbridge";
1249    fn full_name() -> ::prost::alloc::string::String {
1250        ::prost::alloc::format!("side.btcbridge.{}", Self::NAME)
1251    }
1252}
1253/// QueryUTXOsRequest is the request type for the Query/UTXOs RPC method.
1254#[allow(clippy::derive_partial_eq_without_eq)]
1255#[derive(Clone, PartialEq, ::prost::Message)]
1256pub struct QueryUtxOsRequest {}
1257impl ::prost::Name for QueryUtxOsRequest {
1258    const NAME: &'static str = "QueryUTXOsRequest";
1259    const PACKAGE: &'static str = "side.btcbridge";
1260    fn full_name() -> ::prost::alloc::string::String {
1261        ::prost::alloc::format!("side.btcbridge.{}", Self::NAME)
1262    }
1263}
1264/// QueryUTXOsResponse is the response type for the Query/UTXOs RPC method.
1265#[allow(clippy::derive_partial_eq_without_eq)]
1266#[derive(Clone, PartialEq, ::prost::Message)]
1267pub struct QueryUtxOsResponse {
1268    #[prost(message, repeated, tag = "1")]
1269    pub utxos: ::prost::alloc::vec::Vec<Utxo>,
1270}
1271impl ::prost::Name for QueryUtxOsResponse {
1272    const NAME: &'static str = "QueryUTXOsResponse";
1273    const PACKAGE: &'static str = "side.btcbridge";
1274    fn full_name() -> ::prost::alloc::string::String {
1275        ::prost::alloc::format!("side.btcbridge.{}", Self::NAME)
1276    }
1277}
1278/// QueryUTXOsByAddressRequest is the request type for the Query/UTXOsByAddress RPC method.
1279#[allow(clippy::derive_partial_eq_without_eq)]
1280#[derive(Clone, PartialEq, ::prost::Message)]
1281pub struct QueryUtxOsByAddressRequest {
1282    #[prost(string, tag = "1")]
1283    pub address: ::prost::alloc::string::String,
1284}
1285impl ::prost::Name for QueryUtxOsByAddressRequest {
1286    const NAME: &'static str = "QueryUTXOsByAddressRequest";
1287    const PACKAGE: &'static str = "side.btcbridge";
1288    fn full_name() -> ::prost::alloc::string::String {
1289        ::prost::alloc::format!("side.btcbridge.{}", Self::NAME)
1290    }
1291}
1292/// QueryUTXOsByAddressResponse is the response type for the Query/UTXOsByAddress RPC method.
1293#[allow(clippy::derive_partial_eq_without_eq)]
1294#[derive(Clone, PartialEq, ::prost::Message)]
1295pub struct QueryUtxOsByAddressResponse {
1296    #[prost(message, repeated, tag = "1")]
1297    pub utxos: ::prost::alloc::vec::Vec<Utxo>,
1298}
1299impl ::prost::Name for QueryUtxOsByAddressResponse {
1300    const NAME: &'static str = "QueryUTXOsByAddressResponse";
1301    const PACKAGE: &'static str = "side.btcbridge";
1302    fn full_name() -> ::prost::alloc::string::String {
1303        ::prost::alloc::format!("side.btcbridge.{}", Self::NAME)
1304    }
1305}
1306/// QueryUTXOCountAndBalancesByAddressRequest is the request type for the Query/UTXOCountAndBalancesByAddress RPC method.
1307#[allow(clippy::derive_partial_eq_without_eq)]
1308#[derive(Clone, PartialEq, ::prost::Message)]
1309pub struct QueryUtxoCountAndBalancesByAddressRequest {
1310    #[prost(string, tag = "1")]
1311    pub address: ::prost::alloc::string::String,
1312}
1313impl ::prost::Name for QueryUtxoCountAndBalancesByAddressRequest {
1314    const NAME: &'static str = "QueryUTXOCountAndBalancesByAddressRequest";
1315    const PACKAGE: &'static str = "side.btcbridge";
1316    fn full_name() -> ::prost::alloc::string::String {
1317        ::prost::alloc::format!("side.btcbridge.{}", Self::NAME)
1318    }
1319}
1320/// QueryUTXOCountAndBalancesByAddressResponse is the response type for the Query/UTXOCountAndBalancesByAddress RPC method.
1321#[allow(clippy::derive_partial_eq_without_eq)]
1322#[derive(Clone, PartialEq, ::prost::Message)]
1323pub struct QueryUtxoCountAndBalancesByAddressResponse {
1324    #[prost(uint32, tag = "1")]
1325    pub count: u32,
1326    #[prost(int64, tag = "2")]
1327    pub value: i64,
1328    #[prost(message, repeated, tag = "3")]
1329    pub rune_balances: ::prost::alloc::vec::Vec<RuneBalance>,
1330}
1331impl ::prost::Name for QueryUtxoCountAndBalancesByAddressResponse {
1332    const NAME: &'static str = "QueryUTXOCountAndBalancesByAddressResponse";
1333    const PACKAGE: &'static str = "side.btcbridge";
1334    fn full_name() -> ::prost::alloc::string::String {
1335        ::prost::alloc::format!("side.btcbridge.{}", Self::NAME)
1336    }
1337}
1338/// QueryDKGRequestRequest is the request type for the Query/DKGRequest RPC method.
1339#[allow(clippy::derive_partial_eq_without_eq)]
1340#[derive(Clone, PartialEq, ::prost::Message)]
1341pub struct QueryDkgRequestRequest {
1342    #[prost(uint64, tag = "1")]
1343    pub id: u64,
1344}
1345impl ::prost::Name for QueryDkgRequestRequest {
1346    const NAME: &'static str = "QueryDKGRequestRequest";
1347    const PACKAGE: &'static str = "side.btcbridge";
1348    fn full_name() -> ::prost::alloc::string::String {
1349        ::prost::alloc::format!("side.btcbridge.{}", Self::NAME)
1350    }
1351}
1352/// QueryDKGRequestResponse is the response type for the Query/DKGRequest RPC method.
1353#[allow(clippy::derive_partial_eq_without_eq)]
1354#[derive(Clone, PartialEq, ::prost::Message)]
1355pub struct QueryDkgRequestResponse {
1356    #[prost(message, optional, tag = "1")]
1357    pub request: ::core::option::Option<DkgRequest>,
1358}
1359impl ::prost::Name for QueryDkgRequestResponse {
1360    const NAME: &'static str = "QueryDKGRequestResponse";
1361    const PACKAGE: &'static str = "side.btcbridge";
1362    fn full_name() -> ::prost::alloc::string::String {
1363        ::prost::alloc::format!("side.btcbridge.{}", Self::NAME)
1364    }
1365}
1366/// QueryDKGRequestsRequest is the request type for the Query/DKGRequests RPC method.
1367#[allow(clippy::derive_partial_eq_without_eq)]
1368#[derive(Clone, PartialEq, ::prost::Message)]
1369pub struct QueryDkgRequestsRequest {
1370    #[prost(enumeration = "DkgRequestStatus", tag = "1")]
1371    pub status: i32,
1372}
1373impl ::prost::Name for QueryDkgRequestsRequest {
1374    const NAME: &'static str = "QueryDKGRequestsRequest";
1375    const PACKAGE: &'static str = "side.btcbridge";
1376    fn full_name() -> ::prost::alloc::string::String {
1377        ::prost::alloc::format!("side.btcbridge.{}", Self::NAME)
1378    }
1379}
1380/// QueryDKGRequestsResponse is the response type for the Query/DKGRequests RPC method.
1381#[allow(clippy::derive_partial_eq_without_eq)]
1382#[derive(Clone, PartialEq, ::prost::Message)]
1383pub struct QueryDkgRequestsResponse {
1384    #[prost(message, repeated, tag = "1")]
1385    pub requests: ::prost::alloc::vec::Vec<DkgRequest>,
1386}
1387impl ::prost::Name for QueryDkgRequestsResponse {
1388    const NAME: &'static str = "QueryDKGRequestsResponse";
1389    const PACKAGE: &'static str = "side.btcbridge";
1390    fn full_name() -> ::prost::alloc::string::String {
1391        ::prost::alloc::format!("side.btcbridge.{}", Self::NAME)
1392    }
1393}
1394/// QueryAllDKGRequestsRequest is the request type for the Query/AllDKGRequests RPC method.
1395#[allow(clippy::derive_partial_eq_without_eq)]
1396#[derive(Clone, PartialEq, ::prost::Message)]
1397pub struct QueryAllDkgRequestsRequest {}
1398impl ::prost::Name for QueryAllDkgRequestsRequest {
1399    const NAME: &'static str = "QueryAllDKGRequestsRequest";
1400    const PACKAGE: &'static str = "side.btcbridge";
1401    fn full_name() -> ::prost::alloc::string::String {
1402        ::prost::alloc::format!("side.btcbridge.{}", Self::NAME)
1403    }
1404}
1405/// QueryAllDKGRequestsResponse is the response type for the Query/AllDKGRequests RPC method.
1406#[allow(clippy::derive_partial_eq_without_eq)]
1407#[derive(Clone, PartialEq, ::prost::Message)]
1408pub struct QueryAllDkgRequestsResponse {
1409    #[prost(message, repeated, tag = "1")]
1410    pub requests: ::prost::alloc::vec::Vec<DkgRequest>,
1411}
1412impl ::prost::Name for QueryAllDkgRequestsResponse {
1413    const NAME: &'static str = "QueryAllDKGRequestsResponse";
1414    const PACKAGE: &'static str = "side.btcbridge";
1415    fn full_name() -> ::prost::alloc::string::String {
1416        ::prost::alloc::format!("side.btcbridge.{}", Self::NAME)
1417    }
1418}
1419/// QueryDKGCompletionRequestsRequest is the request type for the Query/DKGCompletionRequests RPC method.
1420#[allow(clippy::derive_partial_eq_without_eq)]
1421#[derive(Clone, PartialEq, ::prost::Message)]
1422pub struct QueryDkgCompletionRequestsRequest {
1423    #[prost(uint64, tag = "1")]
1424    pub id: u64,
1425}
1426impl ::prost::Name for QueryDkgCompletionRequestsRequest {
1427    const NAME: &'static str = "QueryDKGCompletionRequestsRequest";
1428    const PACKAGE: &'static str = "side.btcbridge";
1429    fn full_name() -> ::prost::alloc::string::String {
1430        ::prost::alloc::format!("side.btcbridge.{}", Self::NAME)
1431    }
1432}
1433/// QueryDKGCompletionRequestsResponse is the response type for the Query/DKGCompletionRequests RPC method.
1434#[allow(clippy::derive_partial_eq_without_eq)]
1435#[derive(Clone, PartialEq, ::prost::Message)]
1436pub struct QueryDkgCompletionRequestsResponse {
1437    #[prost(message, repeated, tag = "1")]
1438    pub requests: ::prost::alloc::vec::Vec<DkgCompletionRequest>,
1439}
1440impl ::prost::Name for QueryDkgCompletionRequestsResponse {
1441    const NAME: &'static str = "QueryDKGCompletionRequestsResponse";
1442    const PACKAGE: &'static str = "side.btcbridge";
1443    fn full_name() -> ::prost::alloc::string::String {
1444        ::prost::alloc::format!("side.btcbridge.{}", Self::NAME)
1445    }
1446}
1447#[allow(clippy::derive_partial_eq_without_eq)]
1448#[derive(Clone, PartialEq, ::prost::Message)]
1449pub struct QueryRefreshingRequestRequest {
1450    #[prost(uint64, tag = "1")]
1451    pub id: u64,
1452}
1453impl ::prost::Name for QueryRefreshingRequestRequest {
1454    const NAME: &'static str = "QueryRefreshingRequestRequest";
1455    const PACKAGE: &'static str = "side.btcbridge";
1456    fn full_name() -> ::prost::alloc::string::String {
1457        ::prost::alloc::format!("side.btcbridge.{}", Self::NAME)
1458    }
1459}
1460#[allow(clippy::derive_partial_eq_without_eq)]
1461#[derive(Clone, PartialEq, ::prost::Message)]
1462pub struct QueryRefreshingRequestResponse {
1463    #[prost(message, optional, tag = "1")]
1464    pub request: ::core::option::Option<RefreshingRequest>,
1465}
1466impl ::prost::Name for QueryRefreshingRequestResponse {
1467    const NAME: &'static str = "QueryRefreshingRequestResponse";
1468    const PACKAGE: &'static str = "side.btcbridge";
1469    fn full_name() -> ::prost::alloc::string::String {
1470        ::prost::alloc::format!("side.btcbridge.{}", Self::NAME)
1471    }
1472}
1473#[allow(clippy::derive_partial_eq_without_eq)]
1474#[derive(Clone, PartialEq, ::prost::Message)]
1475pub struct QueryRefreshingRequestsRequest {
1476    #[prost(enumeration = "RefreshingStatus", tag = "1")]
1477    pub status: i32,
1478    #[prost(message, optional, tag = "2")]
1479    pub pagination: ::core::option::Option<super::super::cosmos::base::query::v1beta1::PageRequest>,
1480}
1481impl ::prost::Name for QueryRefreshingRequestsRequest {
1482    const NAME: &'static str = "QueryRefreshingRequestsRequest";
1483    const PACKAGE: &'static str = "side.btcbridge";
1484    fn full_name() -> ::prost::alloc::string::String {
1485        ::prost::alloc::format!("side.btcbridge.{}", Self::NAME)
1486    }
1487}
1488#[allow(clippy::derive_partial_eq_without_eq)]
1489#[derive(Clone, PartialEq, ::prost::Message)]
1490pub struct QueryRefreshingRequestsResponse {
1491    #[prost(message, repeated, tag = "1")]
1492    pub requests: ::prost::alloc::vec::Vec<RefreshingRequest>,
1493    #[prost(message, optional, tag = "2")]
1494    pub pagination:
1495        ::core::option::Option<super::super::cosmos::base::query::v1beta1::PageResponse>,
1496}
1497impl ::prost::Name for QueryRefreshingRequestsResponse {
1498    const NAME: &'static str = "QueryRefreshingRequestsResponse";
1499    const PACKAGE: &'static str = "side.btcbridge";
1500    fn full_name() -> ::prost::alloc::string::String {
1501        ::prost::alloc::format!("side.btcbridge.{}", Self::NAME)
1502    }
1503}
1504#[allow(clippy::derive_partial_eq_without_eq)]
1505#[derive(Clone, PartialEq, ::prost::Message)]
1506pub struct QueryRefreshingCompletionsRequest {
1507    #[prost(uint64, tag = "1")]
1508    pub id: u64,
1509    #[prost(message, optional, tag = "2")]
1510    pub pagination: ::core::option::Option<super::super::cosmos::base::query::v1beta1::PageRequest>,
1511}
1512impl ::prost::Name for QueryRefreshingCompletionsRequest {
1513    const NAME: &'static str = "QueryRefreshingCompletionsRequest";
1514    const PACKAGE: &'static str = "side.btcbridge";
1515    fn full_name() -> ::prost::alloc::string::String {
1516        ::prost::alloc::format!("side.btcbridge.{}", Self::NAME)
1517    }
1518}
1519#[allow(clippy::derive_partial_eq_without_eq)]
1520#[derive(Clone, PartialEq, ::prost::Message)]
1521pub struct QueryRefreshingCompletionsResponse {
1522    #[prost(message, repeated, tag = "1")]
1523    pub completions: ::prost::alloc::vec::Vec<RefreshingCompletion>,
1524    #[prost(message, optional, tag = "2")]
1525    pub pagination:
1526        ::core::option::Option<super::super::cosmos::base::query::v1beta1::PageResponse>,
1527}
1528impl ::prost::Name for QueryRefreshingCompletionsResponse {
1529    const NAME: &'static str = "QueryRefreshingCompletionsResponse";
1530    const PACKAGE: &'static str = "side.btcbridge";
1531    fn full_name() -> ::prost::alloc::string::String {
1532        ::prost::alloc::format!("side.btcbridge.{}", Self::NAME)
1533    }
1534}
1535/// QueryIBCDepositScriptRequest is the request type for the Query/IBCDepositScript RPC method.
1536#[allow(clippy::derive_partial_eq_without_eq)]
1537#[derive(Clone, PartialEq, ::prost::Message)]
1538pub struct QueryIbcDepositScriptRequest {
1539    #[prost(string, tag = "1")]
1540    pub channel_id: ::prost::alloc::string::String,
1541    #[prost(string, tag = "2")]
1542    pub recipient_address: ::prost::alloc::string::String,
1543}
1544impl ::prost::Name for QueryIbcDepositScriptRequest {
1545    const NAME: &'static str = "QueryIBCDepositScriptRequest";
1546    const PACKAGE: &'static str = "side.btcbridge";
1547    fn full_name() -> ::prost::alloc::string::String {
1548        ::prost::alloc::format!("side.btcbridge.{}", Self::NAME)
1549    }
1550}
1551/// QueryIBCDepositScriptResponse is the response type for the Query/IBCDepositScript RPC method.
1552#[allow(clippy::derive_partial_eq_without_eq)]
1553#[derive(Clone, PartialEq, ::prost::Message)]
1554pub struct QueryIbcDepositScriptResponse {
1555    #[prost(string, tag = "1")]
1556    pub script: ::prost::alloc::string::String,
1557}
1558impl ::prost::Name for QueryIbcDepositScriptResponse {
1559    const NAME: &'static str = "QueryIBCDepositScriptResponse";
1560    const PACKAGE: &'static str = "side.btcbridge";
1561    fn full_name() -> ::prost::alloc::string::String {
1562        ::prost::alloc::format!("side.btcbridge.{}", Self::NAME)
1563    }
1564}
1565/// QueryRateLimitRequest is the request type for the Query/RateLimit RPC method.
1566#[allow(clippy::derive_partial_eq_without_eq)]
1567#[derive(Clone, PartialEq, ::prost::Message)]
1568pub struct QueryRateLimitRequest {}
1569impl ::prost::Name for QueryRateLimitRequest {
1570    const NAME: &'static str = "QueryRateLimitRequest";
1571    const PACKAGE: &'static str = "side.btcbridge";
1572    fn full_name() -> ::prost::alloc::string::String {
1573        ::prost::alloc::format!("side.btcbridge.{}", Self::NAME)
1574    }
1575}
1576/// QueryRateLimitResponse is the response type for the Query/RateLimit RPC method.
1577#[allow(clippy::derive_partial_eq_without_eq)]
1578#[derive(Clone, PartialEq, ::prost::Message)]
1579pub struct QueryRateLimitResponse {
1580    #[prost(message, optional, tag = "1")]
1581    pub rate_limit: ::core::option::Option<RateLimit>,
1582}
1583impl ::prost::Name for QueryRateLimitResponse {
1584    const NAME: &'static str = "QueryRateLimitResponse";
1585    const PACKAGE: &'static str = "side.btcbridge";
1586    fn full_name() -> ::prost::alloc::string::String {
1587        ::prost::alloc::format!("side.btcbridge.{}", Self::NAME)
1588    }
1589}
1590/// QueryRateLimitByAddressRequest is the request type for the Query/RateLimitByAddress RPC method.
1591#[allow(clippy::derive_partial_eq_without_eq)]
1592#[derive(Clone, PartialEq, ::prost::Message)]
1593pub struct QueryRateLimitByAddressRequest {
1594    #[prost(string, tag = "1")]
1595    pub address: ::prost::alloc::string::String,
1596}
1597impl ::prost::Name for QueryRateLimitByAddressRequest {
1598    const NAME: &'static str = "QueryRateLimitByAddressRequest";
1599    const PACKAGE: &'static str = "side.btcbridge";
1600    fn full_name() -> ::prost::alloc::string::String {
1601        ::prost::alloc::format!("side.btcbridge.{}", Self::NAME)
1602    }
1603}
1604/// QueryRateLimitByAddressResponse is the response type for the Query/RateLimitByAddress RPC method.
1605#[allow(clippy::derive_partial_eq_without_eq)]
1606#[derive(Clone, PartialEq, ::prost::Message)]
1607pub struct QueryRateLimitByAddressResponse {
1608    /// Address
1609    #[prost(string, tag = "1")]
1610    pub address: ::prost::alloc::string::String,
1611    /// Starting time for the current epoch
1612    #[prost(message, optional, tag = "2")]
1613    pub start_time: ::core::option::Option<::tendermint_proto::google::protobuf::Timestamp>,
1614    /// End time for the current epoch
1615    #[prost(message, optional, tag = "3")]
1616    pub end_time: ::core::option::Option<::tendermint_proto::google::protobuf::Timestamp>,
1617    /// Maximum withdrawable amount for the current epoch; 0 means no limit
1618    #[prost(int64, tag = "4")]
1619    pub quota: i64,
1620    /// Used quota currently
1621    #[prost(int64, tag = "5")]
1622    pub used: i64,
1623}
1624impl ::prost::Name for QueryRateLimitByAddressResponse {
1625    const NAME: &'static str = "QueryRateLimitByAddressResponse";
1626    const PACKAGE: &'static str = "side.btcbridge";
1627    fn full_name() -> ::prost::alloc::string::String {
1628        ::prost::alloc::format!("side.btcbridge.{}", Self::NAME)
1629    }
1630}
1631/// MsgSubmitDepositTransaction defines the Msg/SubmitDepositTransaction request type.
1632#[allow(clippy::derive_partial_eq_without_eq)]
1633#[derive(Clone, PartialEq, ::prost::Message)]
1634pub struct MsgSubmitDepositTransaction {
1635    /// this is the relayer address who submits the bitcoin transaction to the side chain
1636    #[prost(string, tag = "1")]
1637    pub sender: ::prost::alloc::string::String,
1638    #[prost(string, tag = "2")]
1639    pub blockhash: ::prost::alloc::string::String,
1640    /// the tx bytes in base64 format
1641    /// used for parsing the sender of the transaction
1642    #[prost(string, tag = "3")]
1643    pub prev_tx_bytes: ::prost::alloc::string::String,
1644    /// the tx bytes in base64 format
1645    #[prost(string, tag = "4")]
1646    pub tx_bytes: ::prost::alloc::string::String,
1647    #[prost(string, repeated, tag = "5")]
1648    pub proof: ::prost::alloc::vec::Vec<::prost::alloc::string::String>,
1649}
1650impl ::prost::Name for MsgSubmitDepositTransaction {
1651    const NAME: &'static str = "MsgSubmitDepositTransaction";
1652    const PACKAGE: &'static str = "side.btcbridge";
1653    fn full_name() -> ::prost::alloc::string::String {
1654        ::prost::alloc::format!("side.btcbridge.{}", Self::NAME)
1655    }
1656}
1657/// MsgSubmitDepositTransactionResponse defines the Msg/SubmitDepositTransaction response type.
1658#[allow(clippy::derive_partial_eq_without_eq)]
1659#[derive(Clone, PartialEq, ::prost::Message)]
1660pub struct MsgSubmitDepositTransactionResponse {}
1661impl ::prost::Name for MsgSubmitDepositTransactionResponse {
1662    const NAME: &'static str = "MsgSubmitDepositTransactionResponse";
1663    const PACKAGE: &'static str = "side.btcbridge";
1664    fn full_name() -> ::prost::alloc::string::String {
1665        ::prost::alloc::format!("side.btcbridge.{}", Self::NAME)
1666    }
1667}
1668/// MsgSubmitWithdrawTransaction defines the Msg/SubmitWithdrawTransaction request type.
1669#[allow(clippy::derive_partial_eq_without_eq)]
1670#[derive(Clone, PartialEq, ::prost::Message)]
1671pub struct MsgSubmitWithdrawTransaction {
1672    /// this is the relayer address who submits the bitcoin transaction to the side chain
1673    #[prost(string, tag = "1")]
1674    pub sender: ::prost::alloc::string::String,
1675    #[prost(string, tag = "2")]
1676    pub blockhash: ::prost::alloc::string::String,
1677    /// the tx bytes in base64 format
1678    #[prost(string, tag = "3")]
1679    pub tx_bytes: ::prost::alloc::string::String,
1680    #[prost(string, repeated, tag = "4")]
1681    pub proof: ::prost::alloc::vec::Vec<::prost::alloc::string::String>,
1682}
1683impl ::prost::Name for MsgSubmitWithdrawTransaction {
1684    const NAME: &'static str = "MsgSubmitWithdrawTransaction";
1685    const PACKAGE: &'static str = "side.btcbridge";
1686    fn full_name() -> ::prost::alloc::string::String {
1687        ::prost::alloc::format!("side.btcbridge.{}", Self::NAME)
1688    }
1689}
1690/// MsgSubmitWithdrawTransactionResponse defines the Msg/SubmitWithdrawTransaction response type.
1691#[allow(clippy::derive_partial_eq_without_eq)]
1692#[derive(Clone, PartialEq, ::prost::Message)]
1693pub struct MsgSubmitWithdrawTransactionResponse {}
1694impl ::prost::Name for MsgSubmitWithdrawTransactionResponse {
1695    const NAME: &'static str = "MsgSubmitWithdrawTransactionResponse";
1696    const PACKAGE: &'static str = "side.btcbridge";
1697    fn full_name() -> ::prost::alloc::string::String {
1698        ::prost::alloc::format!("side.btcbridge.{}", Self::NAME)
1699    }
1700}
1701/// MsgSubmitFeeRate defines the Msg/SubmitFeeRate request type.
1702#[allow(clippy::derive_partial_eq_without_eq)]
1703#[derive(Clone, PartialEq, ::prost::Message)]
1704pub struct MsgSubmitFeeRate {
1705    #[prost(string, tag = "1")]
1706    pub sender: ::prost::alloc::string::String,
1707    #[prost(int64, tag = "2")]
1708    pub fee_rate: i64,
1709}
1710impl ::prost::Name for MsgSubmitFeeRate {
1711    const NAME: &'static str = "MsgSubmitFeeRate";
1712    const PACKAGE: &'static str = "side.btcbridge";
1713    fn full_name() -> ::prost::alloc::string::String {
1714        ::prost::alloc::format!("side.btcbridge.{}", Self::NAME)
1715    }
1716}
1717/// MsgSubmitFeeRateResponse defines the Msg/SubmitFeeRate response type.
1718#[allow(clippy::derive_partial_eq_without_eq)]
1719#[derive(Clone, PartialEq, ::prost::Message)]
1720pub struct MsgSubmitFeeRateResponse {}
1721impl ::prost::Name for MsgSubmitFeeRateResponse {
1722    const NAME: &'static str = "MsgSubmitFeeRateResponse";
1723    const PACKAGE: &'static str = "side.btcbridge";
1724    fn full_name() -> ::prost::alloc::string::String {
1725        ::prost::alloc::format!("side.btcbridge.{}", Self::NAME)
1726    }
1727}
1728/// MsgUpdateTrustedNonBtcRelayers defines the Msg/UpdateTrustedNonBtcRelayers request type.
1729#[allow(clippy::derive_partial_eq_without_eq)]
1730#[derive(Clone, PartialEq, ::prost::Message)]
1731pub struct MsgUpdateTrustedNonBtcRelayers {
1732    #[prost(string, tag = "1")]
1733    pub sender: ::prost::alloc::string::String,
1734    #[prost(string, repeated, tag = "2")]
1735    pub relayers: ::prost::alloc::vec::Vec<::prost::alloc::string::String>,
1736}
1737impl ::prost::Name for MsgUpdateTrustedNonBtcRelayers {
1738    const NAME: &'static str = "MsgUpdateTrustedNonBtcRelayers";
1739    const PACKAGE: &'static str = "side.btcbridge";
1740    fn full_name() -> ::prost::alloc::string::String {
1741        ::prost::alloc::format!("side.btcbridge.{}", Self::NAME)
1742    }
1743}
1744/// MsgUpdateTrustedNonBtcRelayersResponse defines the Msg/UpdateTrustedNonBtcRelayers response type.
1745#[allow(clippy::derive_partial_eq_without_eq)]
1746#[derive(Clone, PartialEq, ::prost::Message)]
1747pub struct MsgUpdateTrustedNonBtcRelayersResponse {}
1748impl ::prost::Name for MsgUpdateTrustedNonBtcRelayersResponse {
1749    const NAME: &'static str = "MsgUpdateTrustedNonBtcRelayersResponse";
1750    const PACKAGE: &'static str = "side.btcbridge";
1751    fn full_name() -> ::prost::alloc::string::String {
1752        ::prost::alloc::format!("side.btcbridge.{}", Self::NAME)
1753    }
1754}
1755/// MsgUpdateTrustedFeeProviders defines the Msg/UpdateTrustedFeeProviders request type.
1756#[allow(clippy::derive_partial_eq_without_eq)]
1757#[derive(Clone, PartialEq, ::prost::Message)]
1758pub struct MsgUpdateTrustedFeeProviders {
1759    #[prost(string, tag = "1")]
1760    pub sender: ::prost::alloc::string::String,
1761    #[prost(string, repeated, tag = "2")]
1762    pub fee_providers: ::prost::alloc::vec::Vec<::prost::alloc::string::String>,
1763}
1764impl ::prost::Name for MsgUpdateTrustedFeeProviders {
1765    const NAME: &'static str = "MsgUpdateTrustedFeeProviders";
1766    const PACKAGE: &'static str = "side.btcbridge";
1767    fn full_name() -> ::prost::alloc::string::String {
1768        ::prost::alloc::format!("side.btcbridge.{}", Self::NAME)
1769    }
1770}
1771/// MsgUpdateTrustedFeeProvidersResponse defines the Msg/UpdateTrustedFeeProviders response type.
1772#[allow(clippy::derive_partial_eq_without_eq)]
1773#[derive(Clone, PartialEq, ::prost::Message)]
1774pub struct MsgUpdateTrustedFeeProvidersResponse {}
1775impl ::prost::Name for MsgUpdateTrustedFeeProvidersResponse {
1776    const NAME: &'static str = "MsgUpdateTrustedFeeProvidersResponse";
1777    const PACKAGE: &'static str = "side.btcbridge";
1778    fn full_name() -> ::prost::alloc::string::String {
1779        ::prost::alloc::format!("side.btcbridge.{}", Self::NAME)
1780    }
1781}
1782/// MsgWithdrawToBitcoin defines the Msg/WithdrawToBitcoin request type.
1783#[allow(clippy::derive_partial_eq_without_eq)]
1784#[derive(Clone, PartialEq, ::prost::Message)]
1785pub struct MsgWithdrawToBitcoin {
1786    #[prost(string, tag = "1")]
1787    pub sender: ::prost::alloc::string::String,
1788    /// withdraw amount in satoshi, etc: 100000000sat = 1btc
1789    #[prost(string, tag = "2")]
1790    pub amount: ::prost::alloc::string::String,
1791}
1792impl ::prost::Name for MsgWithdrawToBitcoin {
1793    const NAME: &'static str = "MsgWithdrawToBitcoin";
1794    const PACKAGE: &'static str = "side.btcbridge";
1795    fn full_name() -> ::prost::alloc::string::String {
1796        ::prost::alloc::format!("side.btcbridge.{}", Self::NAME)
1797    }
1798}
1799/// MsgWithdrawToBitcoinResponse defines the Msg/WithdrawToBitcoin response type.
1800#[allow(clippy::derive_partial_eq_without_eq)]
1801#[derive(Clone, PartialEq, ::prost::Message)]
1802pub struct MsgWithdrawToBitcoinResponse {}
1803impl ::prost::Name for MsgWithdrawToBitcoinResponse {
1804    const NAME: &'static str = "MsgWithdrawToBitcoinResponse";
1805    const PACKAGE: &'static str = "side.btcbridge";
1806    fn full_name() -> ::prost::alloc::string::String {
1807        ::prost::alloc::format!("side.btcbridge.{}", Self::NAME)
1808    }
1809}
1810/// MsgSubmitSignatures defines the Msg/SubmitSignatures request type.
1811#[allow(clippy::derive_partial_eq_without_eq)]
1812#[derive(Clone, PartialEq, ::prost::Message)]
1813pub struct MsgSubmitSignatures {
1814    #[prost(string, tag = "1")]
1815    pub sender: ::prost::alloc::string::String,
1816    #[prost(string, tag = "2")]
1817    pub txid: ::prost::alloc::string::String,
1818    #[prost(string, repeated, tag = "3")]
1819    pub signatures: ::prost::alloc::vec::Vec<::prost::alloc::string::String>,
1820}
1821impl ::prost::Name for MsgSubmitSignatures {
1822    const NAME: &'static str = "MsgSubmitSignatures";
1823    const PACKAGE: &'static str = "side.btcbridge";
1824    fn full_name() -> ::prost::alloc::string::String {
1825        ::prost::alloc::format!("side.btcbridge.{}", Self::NAME)
1826    }
1827}
1828/// MsgSubmitSignaturesResponse defines the Msg/SubmitSignatures response type.
1829#[allow(clippy::derive_partial_eq_without_eq)]
1830#[derive(Clone, PartialEq, ::prost::Message)]
1831pub struct MsgSubmitSignaturesResponse {}
1832impl ::prost::Name for MsgSubmitSignaturesResponse {
1833    const NAME: &'static str = "MsgSubmitSignaturesResponse";
1834    const PACKAGE: &'static str = "side.btcbridge";
1835    fn full_name() -> ::prost::alloc::string::String {
1836        ::prost::alloc::format!("side.btcbridge.{}", Self::NAME)
1837    }
1838}
1839/// MsgConsolidateVaults is the Msg/ConsolidateVaults request type.
1840#[allow(clippy::derive_partial_eq_without_eq)]
1841#[derive(Clone, PartialEq, ::prost::Message)]
1842pub struct MsgConsolidateVaults {
1843    /// authority is the address that controls the module (defaults to x/gov unless overwritten).
1844    #[prost(string, tag = "1")]
1845    pub authority: ::prost::alloc::string::String,
1846    /// vault version
1847    #[prost(uint64, tag = "2")]
1848    pub vault_version: u64,
1849    /// btc consolidation
1850    #[prost(message, optional, tag = "3")]
1851    pub btc_consolidation: ::core::option::Option<BtcConsolidation>,
1852    /// runes consolidations
1853    #[prost(message, repeated, tag = "4")]
1854    pub runes_consolidations: ::prost::alloc::vec::Vec<RunesConsolidation>,
1855}
1856impl ::prost::Name for MsgConsolidateVaults {
1857    const NAME: &'static str = "MsgConsolidateVaults";
1858    const PACKAGE: &'static str = "side.btcbridge";
1859    fn full_name() -> ::prost::alloc::string::String {
1860        ::prost::alloc::format!("side.btcbridge.{}", Self::NAME)
1861    }
1862}
1863/// MsgConsolidateVaultsResponse defines the Msg/ConsolidateVaults response type.
1864#[allow(clippy::derive_partial_eq_without_eq)]
1865#[derive(Clone, PartialEq, ::prost::Message)]
1866pub struct MsgConsolidateVaultsResponse {}
1867impl ::prost::Name for MsgConsolidateVaultsResponse {
1868    const NAME: &'static str = "MsgConsolidateVaultsResponse";
1869    const PACKAGE: &'static str = "side.btcbridge";
1870    fn full_name() -> ::prost::alloc::string::String {
1871        ::prost::alloc::format!("side.btcbridge.{}", Self::NAME)
1872    }
1873}
1874/// MsgInitiateDKG is the Msg/InitiateDKG request type.
1875#[allow(clippy::derive_partial_eq_without_eq)]
1876#[derive(Clone, PartialEq, ::prost::Message)]
1877pub struct MsgInitiateDkg {
1878    /// authority is the address that controls the module (defaults to x/gov unless overwritten).
1879    #[prost(string, tag = "1")]
1880    pub authority: ::prost::alloc::string::String,
1881    /// expected participant set
1882    #[prost(message, repeated, tag = "2")]
1883    pub participants: ::prost::alloc::vec::Vec<DkgParticipant>,
1884    /// threshold required to perform DKG
1885    #[prost(uint32, tag = "3")]
1886    pub threshold: u32,
1887    /// asset types of vaults to be generated
1888    #[prost(enumeration = "AssetType", repeated, tag = "4")]
1889    pub vault_types: ::prost::alloc::vec::Vec<i32>,
1890    /// indicates if transferring the current vaults to the newly generated vaults when the DKG request is completed
1891    #[prost(bool, tag = "5")]
1892    pub enable_transfer: bool,
1893    /// target number of the UTXOs to be transferred each time
1894    #[prost(uint32, tag = "6")]
1895    pub target_utxo_num: u32,
1896}
1897impl ::prost::Name for MsgInitiateDkg {
1898    const NAME: &'static str = "MsgInitiateDKG";
1899    const PACKAGE: &'static str = "side.btcbridge";
1900    fn full_name() -> ::prost::alloc::string::String {
1901        ::prost::alloc::format!("side.btcbridge.{}", Self::NAME)
1902    }
1903}
1904/// MsgInitiateDKGResponse defines the Msg/InitiateDKG response type.
1905#[allow(clippy::derive_partial_eq_without_eq)]
1906#[derive(Clone, PartialEq, ::prost::Message)]
1907pub struct MsgInitiateDkgResponse {}
1908impl ::prost::Name for MsgInitiateDkgResponse {
1909    const NAME: &'static str = "MsgInitiateDKGResponse";
1910    const PACKAGE: &'static str = "side.btcbridge";
1911    fn full_name() -> ::prost::alloc::string::String {
1912        ::prost::alloc::format!("side.btcbridge.{}", Self::NAME)
1913    }
1914}
1915/// MsgCompleteDKG is the Msg/CompleteDKG request type.
1916#[allow(clippy::derive_partial_eq_without_eq)]
1917#[derive(Clone, PartialEq, ::prost::Message)]
1918pub struct MsgCompleteDkg {
1919    /// the sender
1920    #[prost(string, tag = "1")]
1921    pub sender: ::prost::alloc::string::String,
1922    /// DKG request id
1923    #[prost(uint64, tag = "2")]
1924    pub id: u64,
1925    /// new vaults generated by DKG
1926    #[prost(string, repeated, tag = "3")]
1927    pub vaults: ::prost::alloc::vec::Vec<::prost::alloc::string::String>,
1928    /// participant consensus pub key
1929    #[prost(string, tag = "4")]
1930    pub consensus_pubkey: ::prost::alloc::string::String,
1931    /// hex encoded participant signature
1932    #[prost(string, tag = "5")]
1933    pub signature: ::prost::alloc::string::String,
1934}
1935impl ::prost::Name for MsgCompleteDkg {
1936    const NAME: &'static str = "MsgCompleteDKG";
1937    const PACKAGE: &'static str = "side.btcbridge";
1938    fn full_name() -> ::prost::alloc::string::String {
1939        ::prost::alloc::format!("side.btcbridge.{}", Self::NAME)
1940    }
1941}
1942/// MsgCompleteDKGResponse defines the Msg/CompleteDKG response type.
1943#[allow(clippy::derive_partial_eq_without_eq)]
1944#[derive(Clone, PartialEq, ::prost::Message)]
1945pub struct MsgCompleteDkgResponse {}
1946impl ::prost::Name for MsgCompleteDkgResponse {
1947    const NAME: &'static str = "MsgCompleteDKGResponse";
1948    const PACKAGE: &'static str = "side.btcbridge";
1949    fn full_name() -> ::prost::alloc::string::String {
1950        ::prost::alloc::format!("side.btcbridge.{}", Self::NAME)
1951    }
1952}
1953/// MsgRefresh defines the Msg/Refresh request type.
1954#[allow(clippy::derive_partial_eq_without_eq)]
1955#[derive(Clone, PartialEq, ::prost::Message)]
1956pub struct MsgRefresh {
1957    /// authority is the address that controls the module (defaults to x/gov unless overwritten).
1958    #[prost(string, tag = "1")]
1959    pub authority: ::prost::alloc::string::String,
1960    /// list of DKGs corresponding to key shares to be refreshed
1961    #[prost(uint64, repeated, tag = "2")]
1962    pub dkg_ids: ::prost::alloc::vec::Vec<u64>,
1963    /// removed participant set
1964    #[prost(string, repeated, tag = "3")]
1965    pub removed_participants: ::prost::alloc::vec::Vec<::prost::alloc::string::String>,
1966    /// new threshold set corresponding to the DKGs
1967    #[prost(uint32, repeated, tag = "4")]
1968    pub thresholds: ::prost::alloc::vec::Vec<u32>,
1969    /// timeout duration per DKG refreshing
1970    #[prost(message, optional, tag = "5")]
1971    pub timeout_duration: ::core::option::Option<::tendermint_proto::google::protobuf::Duration>,
1972}
1973impl ::prost::Name for MsgRefresh {
1974    const NAME: &'static str = "MsgRefresh";
1975    const PACKAGE: &'static str = "side.btcbridge";
1976    fn full_name() -> ::prost::alloc::string::String {
1977        ::prost::alloc::format!("side.btcbridge.{}", Self::NAME)
1978    }
1979}
1980/// MsgRefreshResponse defines the Msg/Refresh response type.
1981#[allow(clippy::derive_partial_eq_without_eq)]
1982#[derive(Clone, PartialEq, ::prost::Message)]
1983pub struct MsgRefreshResponse {}
1984impl ::prost::Name for MsgRefreshResponse {
1985    const NAME: &'static str = "MsgRefreshResponse";
1986    const PACKAGE: &'static str = "side.btcbridge";
1987    fn full_name() -> ::prost::alloc::string::String {
1988        ::prost::alloc::format!("side.btcbridge.{}", Self::NAME)
1989    }
1990}
1991/// MsgCompleteRefreshing defines the Msg/CompleteRefreshing request type.
1992#[allow(clippy::derive_partial_eq_without_eq)]
1993#[derive(Clone, PartialEq, ::prost::Message)]
1994pub struct MsgCompleteRefreshing {
1995    /// sender
1996    #[prost(string, tag = "1")]
1997    pub sender: ::prost::alloc::string::String,
1998    /// request id
1999    #[prost(uint64, tag = "2")]
2000    pub id: u64,
2001    /// participant consensus pub key
2002    #[prost(string, tag = "3")]
2003    pub consensus_pubkey: ::prost::alloc::string::String,
2004    /// hex encoded participant signature
2005    #[prost(string, tag = "4")]
2006    pub signature: ::prost::alloc::string::String,
2007}
2008impl ::prost::Name for MsgCompleteRefreshing {
2009    const NAME: &'static str = "MsgCompleteRefreshing";
2010    const PACKAGE: &'static str = "side.btcbridge";
2011    fn full_name() -> ::prost::alloc::string::String {
2012        ::prost::alloc::format!("side.btcbridge.{}", Self::NAME)
2013    }
2014}
2015/// MsgCompleteRefreshingResponse defines the Msg/CompleteRefreshing response type.
2016#[allow(clippy::derive_partial_eq_without_eq)]
2017#[derive(Clone, PartialEq, ::prost::Message)]
2018pub struct MsgCompleteRefreshingResponse {}
2019impl ::prost::Name for MsgCompleteRefreshingResponse {
2020    const NAME: &'static str = "MsgCompleteRefreshingResponse";
2021    const PACKAGE: &'static str = "side.btcbridge";
2022    fn full_name() -> ::prost::alloc::string::String {
2023        ::prost::alloc::format!("side.btcbridge.{}", Self::NAME)
2024    }
2025}
2026/// MsgTransferVault is the Msg/TransferVault request type.
2027#[allow(clippy::derive_partial_eq_without_eq)]
2028#[derive(Clone, PartialEq, ::prost::Message)]
2029pub struct MsgTransferVault {
2030    /// authority is the address that controls the module (defaults to x/gov unless overwritten).
2031    #[prost(string, tag = "1")]
2032    pub authority: ::prost::alloc::string::String,
2033    /// version of the source vault
2034    #[prost(uint64, tag = "2")]
2035    pub source_version: u64,
2036    /// version of the destination vault
2037    #[prost(uint64, tag = "3")]
2038    pub dest_version: u64,
2039    /// asset type
2040    #[prost(enumeration = "AssetType", tag = "4")]
2041    pub asset_type: i32,
2042    /// a set of optional pre-built PSBTs to perform the asset transfer
2043    #[prost(string, repeated, tag = "5")]
2044    pub psbts: ::prost::alloc::vec::Vec<::prost::alloc::string::String>,
2045    /// target number of the UTXOs to be transferred; only take effect when psbt not provided
2046    #[prost(uint32, tag = "6")]
2047    pub target_utxo_num: u32,
2048}
2049impl ::prost::Name for MsgTransferVault {
2050    const NAME: &'static str = "MsgTransferVault";
2051    const PACKAGE: &'static str = "side.btcbridge";
2052    fn full_name() -> ::prost::alloc::string::String {
2053        ::prost::alloc::format!("side.btcbridge.{}", Self::NAME)
2054    }
2055}
2056/// MsgTransferVaultResponse defines the Msg/TransferVault response type.
2057#[allow(clippy::derive_partial_eq_without_eq)]
2058#[derive(Clone, PartialEq, ::prost::Message)]
2059pub struct MsgTransferVaultResponse {}
2060impl ::prost::Name for MsgTransferVaultResponse {
2061    const NAME: &'static str = "MsgTransferVaultResponse";
2062    const PACKAGE: &'static str = "side.btcbridge";
2063    fn full_name() -> ::prost::alloc::string::String {
2064        ::prost::alloc::format!("side.btcbridge.{}", Self::NAME)
2065    }
2066}
2067/// MsgUpdateParams is the Msg/UpdateParams request type.
2068///
2069/// Since: cosmos-sdk 0.47
2070#[allow(clippy::derive_partial_eq_without_eq)]
2071#[derive(Clone, PartialEq, ::prost::Message)]
2072pub struct MsgUpdateParams {
2073    /// authority is the address that controls the module (defaults to x/gov unless overwritten).
2074    #[prost(string, tag = "1")]
2075    pub authority: ::prost::alloc::string::String,
2076    /// params defines the x/btcbridge parameters to be updated.
2077    ///
2078    /// NOTE: All parameters must be supplied.
2079    #[prost(message, optional, tag = "2")]
2080    pub params: ::core::option::Option<Params>,
2081}
2082impl ::prost::Name for MsgUpdateParams {
2083    const NAME: &'static str = "MsgUpdateParams";
2084    const PACKAGE: &'static str = "side.btcbridge";
2085    fn full_name() -> ::prost::alloc::string::String {
2086        ::prost::alloc::format!("side.btcbridge.{}", Self::NAME)
2087    }
2088}
2089/// MsgUpdateParamsResponse defines the Msg/UpdateParams response type.
2090///
2091/// Since: cosmos-sdk 0.47
2092#[allow(clippy::derive_partial_eq_without_eq)]
2093#[derive(Clone, PartialEq, ::prost::Message)]
2094pub struct MsgUpdateParamsResponse {}
2095impl ::prost::Name for MsgUpdateParamsResponse {
2096    const NAME: &'static str = "MsgUpdateParamsResponse";
2097    const PACKAGE: &'static str = "side.btcbridge";
2098    fn full_name() -> ::prost::alloc::string::String {
2099        ::prost::alloc::format!("side.btcbridge.{}", Self::NAME)
2100    }
2101}
2102include!("side.btcbridge.serde.rs");
2103include!("side.btcbridge.tonic.rs");
2104// @@protoc_insertion_point(module)