desmos_bindings/proto/desmos/profiles/v3/
mod.rs

1pub mod client;
2/// ChainLink contains the data representing either an inter- or cross- chain
3/// link
4#[allow(clippy::derive_partial_eq_without_eq)]
5#[derive(
6    Clone,
7    PartialEq,
8    ::prost::Message,
9    schemars::JsonSchema,
10    serde::Serialize,
11    serde::Deserialize,
12    desmos_std_derive::CosmwasmExt,
13)]
14#[proto_message(type_url = "/desmos.profiles.v3.ChainLink")]
15#[serde(rename_all = "snake_case")]
16pub struct ChainLink {
17    /// User defines the destination profile address to link
18    #[prost(string, tag = "1")]
19    pub user: ::prost::alloc::string::String,
20    /// Address contains the data of the external chain address to be connected
21    /// with the Desmos profile
22    #[prost(message, optional, tag = "2")]
23    pub address: ::core::option::Option<crate::shim::Any>,
24    /// Proof contains the ownership proof of the external chain address
25    #[prost(message, optional, tag = "3")]
26    pub proof: ::core::option::Option<Proof>,
27    /// ChainConfig contains the configuration of the external chain
28    #[prost(message, optional, tag = "4")]
29    pub chain_config: ::core::option::Option<ChainConfig>,
30    /// CreationTime represents the time in which the link has been created
31    #[prost(message, optional, tag = "5")]
32    pub creation_time: ::core::option::Option<crate::shim::Timestamp>,
33}
34/// ChainConfig contains the data of the chain with which the link is made.
35#[allow(clippy::derive_partial_eq_without_eq)]
36#[derive(
37    Clone,
38    PartialEq,
39    ::prost::Message,
40    schemars::JsonSchema,
41    serde::Serialize,
42    serde::Deserialize,
43    desmos_std_derive::CosmwasmExt,
44)]
45#[proto_message(type_url = "/desmos.profiles.v3.ChainConfig")]
46#[serde(rename_all = "snake_case")]
47pub struct ChainConfig {
48    #[prost(string, tag = "1")]
49    pub name: ::prost::alloc::string::String,
50}
51/// Proof contains all the data used to verify a signature when linking an
52/// account to a profile
53#[allow(clippy::derive_partial_eq_without_eq)]
54#[derive(
55    Clone,
56    PartialEq,
57    ::prost::Message,
58    schemars::JsonSchema,
59    serde::Serialize,
60    serde::Deserialize,
61    desmos_std_derive::CosmwasmExt,
62)]
63#[proto_message(type_url = "/desmos.profiles.v3.Proof")]
64#[serde(rename_all = "snake_case")]
65pub struct Proof {
66    /// PubKey represents the public key associated with the address for which to
67    /// prove the ownership
68    #[prost(message, optional, tag = "1")]
69    pub pub_key: ::core::option::Option<crate::shim::Any>,
70    /// Signature represents the hex-encoded signature of the PlainText value
71    #[prost(message, optional, tag = "2")]
72    pub signature: ::core::option::Option<crate::shim::Any>,
73    /// PlainText represents the hex-encoded value signed in order to produce the
74    /// Signature
75    #[prost(string, tag = "3")]
76    pub plain_text: ::prost::alloc::string::String,
77}
78/// Bech32Address represents a Bech32-encoded address
79#[allow(clippy::derive_partial_eq_without_eq)]
80#[derive(
81    Clone,
82    PartialEq,
83    ::prost::Message,
84    schemars::JsonSchema,
85    serde::Serialize,
86    serde::Deserialize,
87    desmos_std_derive::CosmwasmExt,
88)]
89#[proto_message(type_url = "/desmos.profiles.v3.Bech32Address")]
90#[serde(rename_all = "snake_case")]
91pub struct Bech32Address {
92    /// Value represents the Bech-32 encoded address value
93    #[prost(string, tag = "1")]
94    pub value: ::prost::alloc::string::String,
95    /// Prefix represents the HRP of the Bech32 address
96    #[prost(string, tag = "2")]
97    pub prefix: ::prost::alloc::string::String,
98}
99/// Base58Address represents a Base58-encoded address
100#[allow(clippy::derive_partial_eq_without_eq)]
101#[derive(
102    Clone,
103    PartialEq,
104    ::prost::Message,
105    schemars::JsonSchema,
106    serde::Serialize,
107    serde::Deserialize,
108    desmos_std_derive::CosmwasmExt,
109)]
110#[proto_message(type_url = "/desmos.profiles.v3.Base58Address")]
111#[serde(rename_all = "snake_case")]
112pub struct Base58Address {
113    /// Value contains the Base58-encoded address
114    #[prost(string, tag = "1")]
115    pub value: ::prost::alloc::string::String,
116}
117/// HexAddress represents an Hex-encoded address
118/// NOTE: Currently it only supports keccak256-uncompressed addresses
119#[allow(clippy::derive_partial_eq_without_eq)]
120#[derive(
121    Clone,
122    PartialEq,
123    ::prost::Message,
124    schemars::JsonSchema,
125    serde::Serialize,
126    serde::Deserialize,
127    desmos_std_derive::CosmwasmExt,
128)]
129#[proto_message(type_url = "/desmos.profiles.v3.HexAddress")]
130#[serde(rename_all = "snake_case")]
131pub struct HexAddress {
132    /// Value represents the hex address value
133    #[prost(string, tag = "1")]
134    pub value: ::prost::alloc::string::String,
135    /// Prefix represents the optional prefix used during address encoding (e.g.
136    /// 0x)
137    #[prost(string, tag = "2")]
138    pub prefix: ::prost::alloc::string::String,
139}
140/// SingleSignature is the signature data for a single signer
141#[allow(clippy::derive_partial_eq_without_eq)]
142#[derive(
143    Clone,
144    PartialEq,
145    ::prost::Message,
146    schemars::JsonSchema,
147    serde::Serialize,
148    serde::Deserialize,
149    desmos_std_derive::CosmwasmExt,
150)]
151#[proto_message(type_url = "/desmos.profiles.v3.SingleSignature")]
152#[serde(rename_all = "snake_case")]
153pub struct SingleSignature {
154    /// Type represents the type of the signature value
155    #[prost(enumeration = "SignatureValueType", tag = "1")]
156    #[serde(
157        serialize_with = "SignatureValueType::serialize",
158        deserialize_with = "SignatureValueType::deserialize"
159    )]
160    pub value_type: i32,
161    /// Signature is the raw signature bytes
162    #[prost(bytes = "vec", tag = "2")]
163    #[serde(
164        serialize_with = "crate::serde::as_base64::serialize",
165        deserialize_with = "crate::serde::as_base64::deserialize"
166    )]
167    pub signature: ::prost::alloc::vec::Vec<u8>,
168}
169/// CosmosMultiSignature is the signature data for a multisig public key
170#[allow(clippy::derive_partial_eq_without_eq)]
171#[derive(
172    Clone,
173    PartialEq,
174    ::prost::Message,
175    schemars::JsonSchema,
176    serde::Serialize,
177    serde::Deserialize,
178    desmos_std_derive::CosmwasmExt,
179)]
180#[proto_message(type_url = "/desmos.profiles.v3.CosmosMultiSignature")]
181#[serde(rename_all = "snake_case")]
182pub struct CosmosMultiSignature {
183    /// Bitarray specifies which keys within the multisig are signing
184    #[prost(message, optional, tag = "1")]
185    pub bit_array: ::core::option::Option<
186        super::super::super::cosmos::crypto::multisig::v1beta1::CompactBitArray,
187    >,
188    /// Signatures is the signatures of the multi-signature
189    #[prost(message, repeated, tag = "2")]
190    pub signatures: ::prost::alloc::vec::Vec<crate::shim::Any>,
191}
192/// SignatureValueType specifies all the possible signature types
193#[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)]
194#[repr(i32)]
195#[derive(strum_macros::FromRepr, serde::Serialize, serde::Deserialize, schemars::JsonSchema)]
196#[serde(rename_all = "snake_case")]
197pub enum SignatureValueType {
198    /// SIGNATURE_VALUE_TYPE_UNSPECIFIED specifies an unknown signing mode
199    /// and will be rejected
200    Unspecified = 0,
201    /// SIGNATURE_VALUE_TYPE_RAW should be used when the value has been
202    /// signed as a raw byte array
203    Raw = 1,
204    /// SIGNATURE_VALUE_TYPE_COSMOS_DIRECT should be used when the signed
205    /// value has been encoded as a Protobuf transaction containing the owner
206    /// address inside its memo field
207    CosmosDirect = 2,
208    /// SIGNATURE_VALUE_TYPE_COSMOS_AMINO should be used when the value has
209    /// been encoded as an Amino transaction containing the owner address inside
210    /// its memo field
211    CosmosAmino = 3,
212    /// SIGNATURE_VALUE_TYPE_EVM_PERSONAL_SIGN should be used when the value
213    /// has been encoded following the EVM personal_sign specification
214    EvmPersonalSign = 4,
215}
216impl SignatureValueType {
217    /// String value of the enum field names used in the ProtoBuf definition.
218    ///
219    /// The values are not transformed in any way and thus are considered stable
220    /// (if the ProtoBuf definition does not change) and safe for programmatic use.
221    pub fn as_str_name(&self) -> &'static str {
222        match self {
223            SignatureValueType::Unspecified => "SIGNATURE_VALUE_TYPE_UNSPECIFIED",
224            SignatureValueType::Raw => "SIGNATURE_VALUE_TYPE_RAW",
225            SignatureValueType::CosmosDirect => "SIGNATURE_VALUE_TYPE_COSMOS_DIRECT",
226            SignatureValueType::CosmosAmino => "SIGNATURE_VALUE_TYPE_COSMOS_AMINO",
227            SignatureValueType::EvmPersonalSign => "SIGNATURE_VALUE_TYPE_EVM_PERSONAL_SIGN",
228        }
229    }
230    /// Creates an enum from field names used in the ProtoBuf definition.
231    pub fn from_str_name(value: &str) -> ::core::option::Option<Self> {
232        match value {
233            "SIGNATURE_VALUE_TYPE_UNSPECIFIED" => Some(Self::Unspecified),
234            "SIGNATURE_VALUE_TYPE_RAW" => Some(Self::Raw),
235            "SIGNATURE_VALUE_TYPE_COSMOS_DIRECT" => Some(Self::CosmosDirect),
236            "SIGNATURE_VALUE_TYPE_COSMOS_AMINO" => Some(Self::CosmosAmino),
237            "SIGNATURE_VALUE_TYPE_EVM_PERSONAL_SIGN" => Some(Self::EvmPersonalSign),
238            _ => None,
239        }
240    }
241    pub fn serialize<S>(v: &i32, serializer: S) -> std::result::Result<S::Ok, S::Error>
242    where
243        S: serde::Serializer,
244    {
245        let enum_value = Self::from_repr(*v);
246        match enum_value {
247            Some(v) => serializer.serialize_str(v.as_str_name()),
248            None => Err(serde::ser::Error::custom("unknown value")),
249        }
250    }
251    pub fn deserialize<'de, D>(deserializer: D) -> std::result::Result<i32, D::Error>
252    where
253        D: serde::Deserializer<'de>,
254    {
255        use serde::de::Deserialize;
256        let s = String::deserialize(deserializer)?;
257        match Self::from_str_name(&s) {
258            Some(v) => Ok(v.into()),
259            None => Err(serde::de::Error::custom("unknown value")),
260        }
261    }
262}
263/// Params contains the parameters for the profiles module
264#[allow(clippy::derive_partial_eq_without_eq)]
265#[derive(
266    Clone,
267    PartialEq,
268    ::prost::Message,
269    schemars::JsonSchema,
270    serde::Serialize,
271    serde::Deserialize,
272    desmos_std_derive::CosmwasmExt,
273)]
274#[proto_message(type_url = "/desmos.profiles.v3.Params")]
275#[serde(rename_all = "snake_case")]
276pub struct Params {
277    #[prost(message, optional, tag = "1")]
278    pub nickname: ::core::option::Option<NicknameParams>,
279    #[prost(message, optional, tag = "2")]
280    pub dtag: ::core::option::Option<DTagParams>,
281    #[prost(message, optional, tag = "3")]
282    pub bio: ::core::option::Option<BioParams>,
283    #[prost(message, optional, tag = "4")]
284    pub oracle: ::core::option::Option<OracleParams>,
285    #[prost(message, optional, tag = "5")]
286    pub app_links: ::core::option::Option<AppLinksParams>,
287}
288/// NicknameParams defines the parameters related to the profiles nicknames
289#[allow(clippy::derive_partial_eq_without_eq)]
290#[derive(
291    Clone,
292    PartialEq,
293    ::prost::Message,
294    schemars::JsonSchema,
295    serde::Serialize,
296    serde::Deserialize,
297    desmos_std_derive::CosmwasmExt,
298)]
299#[proto_message(type_url = "/desmos.profiles.v3.NicknameParams")]
300#[serde(rename_all = "snake_case")]
301pub struct NicknameParams {
302    #[prost(bytes = "vec", tag = "1")]
303    #[serde(
304        serialize_with = "crate::serde::as_base64::serialize",
305        deserialize_with = "crate::serde::as_base64::deserialize"
306    )]
307    pub min_length: ::prost::alloc::vec::Vec<u8>,
308    #[prost(bytes = "vec", tag = "2")]
309    #[serde(
310        serialize_with = "crate::serde::as_base64::serialize",
311        deserialize_with = "crate::serde::as_base64::deserialize"
312    )]
313    pub max_length: ::prost::alloc::vec::Vec<u8>,
314}
315/// DTagParams defines the parameters related to profile DTags
316#[allow(clippy::derive_partial_eq_without_eq)]
317#[derive(
318    Clone,
319    PartialEq,
320    ::prost::Message,
321    schemars::JsonSchema,
322    serde::Serialize,
323    serde::Deserialize,
324    desmos_std_derive::CosmwasmExt,
325)]
326#[proto_message(type_url = "/desmos.profiles.v3.DTagParams")]
327#[serde(rename_all = "snake_case")]
328pub struct DTagParams {
329    #[prost(string, tag = "1")]
330    pub reg_ex: ::prost::alloc::string::String,
331    #[prost(bytes = "vec", tag = "2")]
332    #[serde(
333        serialize_with = "crate::serde::as_base64::serialize",
334        deserialize_with = "crate::serde::as_base64::deserialize"
335    )]
336    pub min_length: ::prost::alloc::vec::Vec<u8>,
337    #[prost(bytes = "vec", tag = "3")]
338    #[serde(
339        serialize_with = "crate::serde::as_base64::serialize",
340        deserialize_with = "crate::serde::as_base64::deserialize"
341    )]
342    pub max_length: ::prost::alloc::vec::Vec<u8>,
343}
344/// BioParams defines the parameters related to profile biography
345#[allow(clippy::derive_partial_eq_without_eq)]
346#[derive(
347    Clone,
348    PartialEq,
349    ::prost::Message,
350    schemars::JsonSchema,
351    serde::Serialize,
352    serde::Deserialize,
353    desmos_std_derive::CosmwasmExt,
354)]
355#[proto_message(type_url = "/desmos.profiles.v3.BioParams")]
356#[serde(rename_all = "snake_case")]
357pub struct BioParams {
358    #[prost(bytes = "vec", tag = "3")]
359    #[serde(
360        serialize_with = "crate::serde::as_base64::serialize",
361        deserialize_with = "crate::serde::as_base64::deserialize"
362    )]
363    pub max_length: ::prost::alloc::vec::Vec<u8>,
364}
365/// OracleParams defines the parameters related to the oracle
366/// that will be used to verify the ownership of a centralized
367/// application account by a Desmos profile
368#[allow(clippy::derive_partial_eq_without_eq)]
369#[derive(
370    Clone,
371    PartialEq,
372    ::prost::Message,
373    schemars::JsonSchema,
374    serde::Serialize,
375    serde::Deserialize,
376    desmos_std_derive::CosmwasmExt,
377)]
378#[proto_message(type_url = "/desmos.profiles.v3.OracleParams")]
379#[serde(rename_all = "snake_case")]
380pub struct OracleParams {
381    /// ScriptID represents the ID of the oracle script to be called to verify the
382    /// data
383    #[prost(uint64, tag = "1")]
384    #[serde(
385        serialize_with = "crate::serde::as_str::serialize",
386        deserialize_with = "crate::serde::as_str::deserialize"
387    )]
388    pub script_id: u64,
389    /// AskCount represents the number of oracles to which ask to verify the data
390    #[prost(uint64, tag = "2")]
391    #[serde(
392        serialize_with = "crate::serde::as_str::serialize",
393        deserialize_with = "crate::serde::as_str::deserialize"
394    )]
395    pub ask_count: u64,
396    /// MinCount represents the minimum count of oracles that should complete the
397    /// verification successfully
398    #[prost(uint64, tag = "3")]
399    #[serde(
400        serialize_with = "crate::serde::as_str::serialize",
401        deserialize_with = "crate::serde::as_str::deserialize"
402    )]
403    pub min_count: u64,
404    /// PrepareGas represents the amount of gas to be used during the preparation
405    /// stage of the oracle script
406    #[prost(uint64, tag = "4")]
407    #[serde(
408        serialize_with = "crate::serde::as_str::serialize",
409        deserialize_with = "crate::serde::as_str::deserialize"
410    )]
411    pub prepare_gas: u64,
412    /// ExecuteGas represents the amount of gas to be used during the execution of
413    /// the oracle script
414    #[prost(uint64, tag = "5")]
415    #[serde(
416        serialize_with = "crate::serde::as_str::serialize",
417        deserialize_with = "crate::serde::as_str::deserialize"
418    )]
419    pub execute_gas: u64,
420    /// FeeAmount represents the amount of fees to be payed in order to execute the
421    /// oracle script
422    #[prost(message, repeated, tag = "6")]
423    pub fee_amount: ::prost::alloc::vec::Vec<super::super::super::cosmos::base::v1beta1::Coin>,
424}
425/// AppLinksParams define the parameters related to the app links
426#[allow(clippy::derive_partial_eq_without_eq)]
427#[derive(
428    Clone,
429    PartialEq,
430    ::prost::Message,
431    schemars::JsonSchema,
432    serde::Serialize,
433    serde::Deserialize,
434    desmos_std_derive::CosmwasmExt,
435)]
436#[proto_message(type_url = "/desmos.profiles.v3.AppLinksParams")]
437#[serde(rename_all = "snake_case")]
438pub struct AppLinksParams {
439    /// Default validity duration before an application link expires
440    #[prost(message, optional, tag = "1")]
441    pub validity_duration: ::core::option::Option<crate::shim::Duration>,
442}
443/// DTagTransferRequest represent a DTag transfer request between two users
444#[allow(clippy::derive_partial_eq_without_eq)]
445#[derive(
446    Clone,
447    PartialEq,
448    ::prost::Message,
449    schemars::JsonSchema,
450    serde::Serialize,
451    serde::Deserialize,
452    desmos_std_derive::CosmwasmExt,
453)]
454#[proto_message(type_url = "/desmos.profiles.v3.DTagTransferRequest")]
455#[serde(rename_all = "snake_case")]
456pub struct DTagTransferRequest {
457    /// DTagToTrade contains the value of the DTag that should be transferred from
458    /// the receiver of the request to the sender
459    #[prost(string, tag = "1")]
460    pub dtag_to_trade: ::prost::alloc::string::String,
461    /// Sender represents the address of the account that sent the request
462    #[prost(string, tag = "2")]
463    pub sender: ::prost::alloc::string::String,
464    /// Receiver represents the receiver of the request that, if accepted, will
465    /// give to the sender their DTag
466    #[prost(string, tag = "3")]
467    pub receiver: ::prost::alloc::string::String,
468}
469/// ApplicationLink contains the data of a link to a centralized application
470#[allow(clippy::derive_partial_eq_without_eq)]
471#[derive(
472    Clone,
473    PartialEq,
474    ::prost::Message,
475    schemars::JsonSchema,
476    serde::Serialize,
477    serde::Deserialize,
478    desmos_std_derive::CosmwasmExt,
479)]
480#[proto_message(type_url = "/desmos.profiles.v3.ApplicationLink")]
481#[serde(rename_all = "snake_case")]
482pub struct ApplicationLink {
483    ///   User to which the link is associated
484    #[prost(string, tag = "1")]
485    pub user: ::prost::alloc::string::String,
486    /// Data contains the details of this specific link
487    #[prost(message, optional, tag = "2")]
488    pub data: ::core::option::Option<Data>,
489    /// State of the link
490    #[prost(enumeration = "ApplicationLinkState", tag = "3")]
491    #[serde(
492        serialize_with = "ApplicationLinkState::serialize",
493        deserialize_with = "ApplicationLinkState::deserialize"
494    )]
495    pub state: i32,
496    /// OracleRequest represents the request that has been made to the oracle
497    #[prost(message, optional, tag = "4")]
498    pub oracle_request: ::core::option::Option<OracleRequest>,
499    /// Data coming from the result of the verification.
500    /// Only available when the state is STATE_SUCCESS
501    #[prost(message, optional, tag = "5")]
502    pub result: ::core::option::Option<ApplicationResult>,
503    /// CreationTime represents the time in which the link was created
504    #[prost(message, optional, tag = "6")]
505    pub creation_time: ::core::option::Option<crate::shim::Timestamp>,
506    /// ExpirationTime represents the time in which the link will expire
507    #[prost(message, optional, tag = "7")]
508    pub expiration_time: ::core::option::Option<crate::shim::Timestamp>,
509}
510/// Data contains the data associated to a specific user of a
511/// generic centralized application
512#[allow(clippy::derive_partial_eq_without_eq)]
513#[derive(
514    Clone,
515    PartialEq,
516    ::prost::Message,
517    schemars::JsonSchema,
518    serde::Serialize,
519    serde::Deserialize,
520    desmos_std_derive::CosmwasmExt,
521)]
522#[proto_message(type_url = "/desmos.profiles.v3.Data")]
523#[serde(rename_all = "snake_case")]
524pub struct Data {
525    /// The application name (eg. Twitter, GitHub, etc)
526    #[prost(string, tag = "1")]
527    pub application: ::prost::alloc::string::String,
528    /// Username on the application (eg. Twitter tag, GitHub profile, etc)
529    #[prost(string, tag = "2")]
530    pub username: ::prost::alloc::string::String,
531}
532/// OracleRequest represents a generic oracle request used to
533/// verify the ownership of a centralized application account
534#[allow(clippy::derive_partial_eq_without_eq)]
535#[derive(
536    Clone,
537    PartialEq,
538    ::prost::Message,
539    schemars::JsonSchema,
540    serde::Serialize,
541    serde::Deserialize,
542    desmos_std_derive::CosmwasmExt,
543)]
544#[proto_message(type_url = "/desmos.profiles.v3.OracleRequest")]
545#[serde(rename_all = "snake_case")]
546pub struct OracleRequest {
547    /// ID is the ID of the request
548    #[prost(uint64, tag = "1")]
549    #[serde(
550        serialize_with = "crate::serde::as_str::serialize",
551        deserialize_with = "crate::serde::as_str::deserialize"
552    )]
553    pub id: u64,
554    /// OracleScriptID is ID of an oracle script
555    #[prost(uint64, tag = "2")]
556    #[serde(
557        serialize_with = "crate::serde::as_str::serialize",
558        deserialize_with = "crate::serde::as_str::deserialize"
559    )]
560    pub oracle_script_id: u64,
561    /// CallData contains the data used to perform the oracle request
562    #[prost(message, optional, tag = "3")]
563    pub call_data: ::core::option::Option<oracle_request::CallData>,
564    /// ClientID represents the ID of the client that has called the oracle script
565    #[prost(string, tag = "4")]
566    pub client_id: ::prost::alloc::string::String,
567}
568/// Nested message and enum types in `OracleRequest`.
569pub mod oracle_request {
570    /// CallData contains the data sent to a single oracle request in order to
571    /// verify the ownership of a centralized application by a Desmos profile
572    #[allow(clippy::derive_partial_eq_without_eq)]
573    #[derive(
574        Clone,
575        PartialEq,
576        ::prost::Message,
577        schemars::JsonSchema,
578        serde::Serialize,
579        serde::Deserialize,
580        desmos_std_derive::CosmwasmExt,
581    )]
582    #[proto_message(type_url = "/desmos.profiles.v3.OracleRequest.CallData")]
583    #[serde(rename_all = "snake_case")]
584    pub struct CallData {
585        /// The application for which the ownership should be verified
586        #[prost(string, tag = "1")]
587        pub application: ::prost::alloc::string::String,
588        /// The hex encoded call data that should be used to verify the application
589        /// account ownership
590        #[prost(string, tag = "2")]
591        pub call_data: ::prost::alloc::string::String,
592    }
593}
594/// Result represents a verification result
595#[allow(clippy::derive_partial_eq_without_eq)]
596#[derive(
597    Clone,
598    PartialEq,
599    ::prost::Message,
600    schemars::JsonSchema,
601    serde::Serialize,
602    serde::Deserialize,
603    desmos_std_derive::CosmwasmExt,
604)]
605#[proto_message(type_url = "/desmos.profiles.v3.Result")]
606#[serde(rename_all = "snake_case")]
607pub struct ApplicationResult {
608    /// sum is the oneof that specifies whether this represents a success or
609    /// failure result
610    #[prost(oneof = "result::Sum", tags = "1, 2")]
611    #[serde(flatten)]
612    pub sum: ::core::option::Option<result::Sum>,
613}
614/// Nested message and enum types in `Result`.
615pub mod result {
616    /// Success is the result of an application link that has been successfully
617    /// verified
618    #[allow(clippy::derive_partial_eq_without_eq)]
619    #[derive(
620        Clone,
621        PartialEq,
622        ::prost::Message,
623        schemars::JsonSchema,
624        serde::Serialize,
625        serde::Deserialize,
626        desmos_std_derive::CosmwasmExt,
627    )]
628    #[proto_message(type_url = "/desmos.profiles.v3.Result.Success")]
629    #[serde(rename_all = "snake_case")]
630    pub struct Success {
631        /// Hex-encoded value that has be signed by the profile
632        #[prost(string, tag = "1")]
633        pub value: ::prost::alloc::string::String,
634        /// Hex-encoded signature that has been produced by signing the value
635        #[prost(string, tag = "2")]
636        pub signature: ::prost::alloc::string::String,
637    }
638    /// Failed is the result of an application link that has not been verified
639    /// successfully
640    #[allow(clippy::derive_partial_eq_without_eq)]
641    #[derive(
642        Clone,
643        PartialEq,
644        ::prost::Message,
645        schemars::JsonSchema,
646        serde::Serialize,
647        serde::Deserialize,
648        desmos_std_derive::CosmwasmExt,
649    )]
650    #[proto_message(type_url = "/desmos.profiles.v3.Result.Failed")]
651    #[serde(rename_all = "snake_case")]
652    pub struct Failed {
653        /// Error that is associated with the failure
654        #[prost(string, tag = "1")]
655        pub error: ::prost::alloc::string::String,
656    }
657    /// sum is the oneof that specifies whether this represents a success or
658    /// failure result
659    #[allow(clippy::derive_partial_eq_without_eq)]
660    #[derive(
661        Clone, PartialEq, ::prost::Oneof, serde::Serialize, serde::Deserialize, schemars::JsonSchema,
662    )]
663    #[serde(rename_all = "snake_case")]
664    pub enum Sum {
665        /// Success represents a successful verification
666        #[prost(message, tag = "1")]
667        Success(Success),
668        /// Failed represents a failed verification
669        #[prost(message, tag = "2")]
670        Failed(Failed),
671    }
672}
673/// ApplicationLinkState defines if an application link is in the following
674/// states: STARTED, ERRORED, SUCCESSFUL, TIMED_OUT
675#[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)]
676#[repr(i32)]
677#[derive(strum_macros::FromRepr, serde::Serialize, serde::Deserialize, schemars::JsonSchema)]
678#[serde(rename_all = "snake_case")]
679pub enum ApplicationLinkState {
680    /// A link has just been initialized
681    InitializedUnspecified = 0,
682    /// A link has just started being verified
683    VerificationStarted = 1,
684    /// A link has errored during the verification process
685    VerificationError = 2,
686    /// A link has being verified successfully
687    VerificationSuccess = 3,
688    /// A link has timed out while waiting for the verification
689    TimedOut = 4,
690}
691impl ApplicationLinkState {
692    /// String value of the enum field names used in the ProtoBuf definition.
693    ///
694    /// The values are not transformed in any way and thus are considered stable
695    /// (if the ProtoBuf definition does not change) and safe for programmatic use.
696    pub fn as_str_name(&self) -> &'static str {
697        match self {
698            ApplicationLinkState::InitializedUnspecified => {
699                "APPLICATION_LINK_STATE_INITIALIZED_UNSPECIFIED"
700            }
701            ApplicationLinkState::VerificationStarted => {
702                "APPLICATION_LINK_STATE_VERIFICATION_STARTED"
703            }
704            ApplicationLinkState::VerificationError => "APPLICATION_LINK_STATE_VERIFICATION_ERROR",
705            ApplicationLinkState::VerificationSuccess => {
706                "APPLICATION_LINK_STATE_VERIFICATION_SUCCESS"
707            }
708            ApplicationLinkState::TimedOut => "APPLICATION_LINK_STATE_TIMED_OUT",
709        }
710    }
711    /// Creates an enum from field names used in the ProtoBuf definition.
712    pub fn from_str_name(value: &str) -> ::core::option::Option<Self> {
713        match value {
714            "APPLICATION_LINK_STATE_INITIALIZED_UNSPECIFIED" => Some(Self::InitializedUnspecified),
715            "APPLICATION_LINK_STATE_VERIFICATION_STARTED" => Some(Self::VerificationStarted),
716            "APPLICATION_LINK_STATE_VERIFICATION_ERROR" => Some(Self::VerificationError),
717            "APPLICATION_LINK_STATE_VERIFICATION_SUCCESS" => Some(Self::VerificationSuccess),
718            "APPLICATION_LINK_STATE_TIMED_OUT" => Some(Self::TimedOut),
719            _ => None,
720        }
721    }
722    pub fn serialize<S>(v: &i32, serializer: S) -> std::result::Result<S::Ok, S::Error>
723    where
724        S: serde::Serializer,
725    {
726        let enum_value = Self::from_repr(*v);
727        match enum_value {
728            Some(v) => serializer.serialize_str(v.as_str_name()),
729            None => Err(serde::ser::Error::custom("unknown value")),
730        }
731    }
732    pub fn deserialize<'de, D>(deserializer: D) -> std::result::Result<i32, D::Error>
733    where
734        D: serde::Deserializer<'de>,
735    {
736        use serde::de::Deserialize;
737        let s = String::deserialize(deserializer)?;
738        match Self::from_str_name(&s) {
739            Some(v) => Ok(v.into()),
740            None => Err(serde::de::Error::custom("unknown value")),
741        }
742    }
743}
744/// GenesisState defines the profiles module's genesis state.
745#[allow(clippy::derive_partial_eq_without_eq)]
746#[derive(
747    Clone,
748    PartialEq,
749    ::prost::Message,
750    schemars::JsonSchema,
751    serde::Serialize,
752    serde::Deserialize,
753    desmos_std_derive::CosmwasmExt,
754)]
755#[proto_message(type_url = "/desmos.profiles.v3.GenesisState")]
756#[serde(rename_all = "snake_case")]
757pub struct GenesisState {
758    #[prost(message, repeated, tag = "1")]
759    pub dtag_transfer_requests: ::prost::alloc::vec::Vec<DTagTransferRequest>,
760    #[prost(message, repeated, tag = "2")]
761    pub chain_links: ::prost::alloc::vec::Vec<ChainLink>,
762    #[prost(message, repeated, tag = "3")]
763    pub application_links: ::prost::alloc::vec::Vec<ApplicationLink>,
764    #[prost(message, repeated, tag = "4")]
765    pub default_external_addresses: ::prost::alloc::vec::Vec<DefaultExternalAddressEntry>,
766    #[prost(string, tag = "5")]
767    pub ibc_port_id: ::prost::alloc::string::String,
768    #[prost(message, optional, tag = "6")]
769    pub params: ::core::option::Option<Params>,
770}
771/// DefaultExternalAddressEntry contains the data of a default extnernal address
772#[allow(clippy::derive_partial_eq_without_eq)]
773#[derive(
774    Clone,
775    PartialEq,
776    ::prost::Message,
777    schemars::JsonSchema,
778    serde::Serialize,
779    serde::Deserialize,
780    desmos_std_derive::CosmwasmExt,
781)]
782#[proto_message(type_url = "/desmos.profiles.v3.DefaultExternalAddressEntry")]
783#[serde(rename_all = "snake_case")]
784pub struct DefaultExternalAddressEntry {
785    #[prost(string, tag = "1")]
786    pub owner: ::prost::alloc::string::String,
787    #[prost(string, tag = "2")]
788    pub chain_name: ::prost::alloc::string::String,
789    #[prost(string, tag = "3")]
790    pub target: ::prost::alloc::string::String,
791}
792/// LinkChainAccountPacketData defines the object that should be sent inside a
793/// MsgSendPacket when wanting to link an external chain to a Desmos profile
794/// using IBC
795#[allow(clippy::derive_partial_eq_without_eq)]
796#[derive(
797    Clone,
798    PartialEq,
799    ::prost::Message,
800    schemars::JsonSchema,
801    serde::Serialize,
802    serde::Deserialize,
803    desmos_std_derive::CosmwasmExt,
804)]
805#[proto_message(type_url = "/desmos.profiles.v3.LinkChainAccountPacketData")]
806#[serde(rename_all = "snake_case")]
807pub struct LinkChainAccountPacketData {
808    /// SourceAddress contains the details of the external chain address
809    #[prost(message, optional, tag = "1")]
810    pub source_address: ::core::option::Option<crate::shim::Any>,
811    /// SourceProof represents the proof of ownership of the source address
812    #[prost(message, optional, tag = "2")]
813    pub source_proof: ::core::option::Option<Proof>,
814    /// SourceChainConfig contains the details of the source chain
815    #[prost(message, optional, tag = "3")]
816    pub source_chain_config: ::core::option::Option<ChainConfig>,
817    /// DestinationAddress represents the Desmos address of the profile that should
818    /// be linked with the external account
819    #[prost(string, tag = "4")]
820    pub destination_address: ::prost::alloc::string::String,
821    /// DestinationProof contains the proof of ownership of the DestinationAddress
822    #[prost(message, optional, tag = "5")]
823    pub destination_proof: ::core::option::Option<Proof>,
824}
825/// LinkChainAccountPacketAck defines a struct for the packet acknowledgment
826#[allow(clippy::derive_partial_eq_without_eq)]
827#[derive(
828    Clone,
829    PartialEq,
830    ::prost::Message,
831    schemars::JsonSchema,
832    serde::Serialize,
833    serde::Deserialize,
834    desmos_std_derive::CosmwasmExt,
835)]
836#[proto_message(type_url = "/desmos.profiles.v3.LinkChainAccountPacketAck")]
837#[serde(rename_all = "snake_case")]
838pub struct LinkChainAccountPacketAck {
839    /// SourceAddress contains the external address that has been linked properly
840    /// with the profile
841    #[prost(string, tag = "1")]
842    pub source_address: ::prost::alloc::string::String,
843}
844/// Profile represents a generic first on Desmos, containing the information of a
845/// single user
846#[allow(clippy::derive_partial_eq_without_eq)]
847#[derive(
848    Clone,
849    PartialEq,
850    ::prost::Message,
851    schemars::JsonSchema,
852    serde::Serialize,
853    serde::Deserialize,
854    desmos_std_derive::CosmwasmExt,
855)]
856#[proto_message(type_url = "/desmos.profiles.v3.Profile")]
857#[serde(rename_all = "snake_case")]
858pub struct Profile {
859    /// Account represents the base Cosmos account associated with this profile
860    #[prost(message, optional, tag = "1")]
861    pub account: ::core::option::Option<crate::shim::Any>,
862    /// DTag represents the unique tag of this profile
863    #[prost(string, tag = "2")]
864    pub dtag: ::prost::alloc::string::String,
865    /// Nickname contains the custom human readable name of the profile
866    #[prost(string, tag = "3")]
867    pub nickname: ::prost::alloc::string::String,
868    /// Bio contains the biography of the profile
869    #[prost(string, tag = "4")]
870    pub bio: ::prost::alloc::string::String,
871    /// Pictures contains the data about the pictures associated with he profile
872    #[prost(message, optional, tag = "5")]
873    pub pictures: ::core::option::Option<Pictures>,
874    /// CreationTime represents the time in which the profile has been created
875    #[prost(message, optional, tag = "6")]
876    pub creation_date: ::core::option::Option<crate::shim::Timestamp>,
877}
878/// Pictures contains the data of a user profile's related pictures
879#[allow(clippy::derive_partial_eq_without_eq)]
880#[derive(
881    Clone,
882    PartialEq,
883    ::prost::Message,
884    schemars::JsonSchema,
885    serde::Serialize,
886    serde::Deserialize,
887    desmos_std_derive::CosmwasmExt,
888)]
889#[proto_message(type_url = "/desmos.profiles.v3.Pictures")]
890#[serde(rename_all = "snake_case")]
891pub struct Pictures {
892    /// Profile contains the URL to the profile picture
893    #[prost(string, tag = "1")]
894    pub profile: ::prost::alloc::string::String,
895    /// Cover contains the URL to the cover picture
896    #[prost(string, tag = "2")]
897    pub cover: ::prost::alloc::string::String,
898}
899/// MsgSaveProfile represents a message to save a profile.
900#[allow(clippy::derive_partial_eq_without_eq)]
901#[derive(
902    Clone,
903    PartialEq,
904    ::prost::Message,
905    schemars::JsonSchema,
906    serde::Serialize,
907    serde::Deserialize,
908    desmos_std_derive::CosmwasmExt,
909)]
910#[proto_message(type_url = "/desmos.profiles.v3.MsgSaveProfile")]
911#[serde(rename_all = "snake_case")]
912pub struct MsgSaveProfile {
913    /// DTag of the profile. If it shouldn't be changed, \[do-no-modify\] can be used
914    /// instead.
915    #[prost(string, tag = "1")]
916    pub dtag: ::prost::alloc::string::String,
917    /// Nickname of the profile. If it shouldn't be changed, \[do-no-modify\] can be
918    /// used instead.
919    #[prost(string, tag = "2")]
920    pub nickname: ::prost::alloc::string::String,
921    /// Bio of the profile. If it shouldn't be changed, \[do-no-modify\] can be used
922    /// instead.
923    #[prost(string, tag = "3")]
924    pub bio: ::prost::alloc::string::String,
925    /// URL to the profile picture. If it shouldn't be changed, \[do-no-modify\] can
926    /// be used instead.
927    #[prost(string, tag = "4")]
928    pub profile_picture: ::prost::alloc::string::String,
929    /// URL to the profile cover. If it shouldn't be changed, \[do-no-modify\] can be
930    /// used instead.
931    #[prost(string, tag = "5")]
932    pub cover_picture: ::prost::alloc::string::String,
933    /// Address of the user associated to the profile
934    #[prost(string, tag = "6")]
935    pub creator: ::prost::alloc::string::String,
936}
937/// MsgSaveProfileResponse defines the Msg/SaveProfile response type.
938#[allow(clippy::derive_partial_eq_without_eq)]
939#[derive(
940    Clone,
941    PartialEq,
942    ::prost::Message,
943    schemars::JsonSchema,
944    serde::Serialize,
945    serde::Deserialize,
946    desmos_std_derive::CosmwasmExt,
947)]
948#[proto_message(type_url = "/desmos.profiles.v3.MsgSaveProfileResponse")]
949#[serde(rename_all = "snake_case")]
950pub struct MsgSaveProfileResponse {}
951/// MsgDeleteProfile represents the message used to delete an existing profile.
952#[allow(clippy::derive_partial_eq_without_eq)]
953#[derive(
954    Clone,
955    PartialEq,
956    ::prost::Message,
957    schemars::JsonSchema,
958    serde::Serialize,
959    serde::Deserialize,
960    desmos_std_derive::CosmwasmExt,
961)]
962#[proto_message(type_url = "/desmos.profiles.v3.MsgDeleteProfile")]
963#[serde(rename_all = "snake_case")]
964pub struct MsgDeleteProfile {
965    /// Address associated to the profile to be deleted
966    #[prost(string, tag = "1")]
967    pub creator: ::prost::alloc::string::String,
968}
969/// MsgDeleteProfileResponse defines the Msg/DeleteProfile response type.
970#[allow(clippy::derive_partial_eq_without_eq)]
971#[derive(
972    Clone,
973    PartialEq,
974    ::prost::Message,
975    schemars::JsonSchema,
976    serde::Serialize,
977    serde::Deserialize,
978    desmos_std_derive::CosmwasmExt,
979)]
980#[proto_message(type_url = "/desmos.profiles.v3.MsgDeleteProfileResponse")]
981#[serde(rename_all = "snake_case")]
982pub struct MsgDeleteProfileResponse {}
983/// MsgRequestDTagTransfer represents the message used to request the DTag
984/// transfer to another user.
985#[allow(clippy::derive_partial_eq_without_eq)]
986#[derive(
987    Clone,
988    PartialEq,
989    ::prost::Message,
990    schemars::JsonSchema,
991    serde::Serialize,
992    serde::Deserialize,
993    desmos_std_derive::CosmwasmExt,
994)]
995#[proto_message(type_url = "/desmos.profiles.v3.MsgRequestDTagTransfer")]
996#[serde(rename_all = "snake_case")]
997pub struct MsgRequestDTagTransfer {
998    /// Receiver contains the address of the request receiver that owns the DTag to
999    /// transfer if the request is accepted
1000    #[prost(string, tag = "1")]
1001    pub receiver: ::prost::alloc::string::String,
1002    /// Sender contains the address of the request sender that will receive the
1003    /// receiver DTag if the requet is accepted
1004    #[prost(string, tag = "2")]
1005    pub sender: ::prost::alloc::string::String,
1006}
1007/// MsgRequestDTagTransferResponse defines the Msg/RequestDTagTransfer response
1008/// type.
1009#[allow(clippy::derive_partial_eq_without_eq)]
1010#[derive(
1011    Clone,
1012    PartialEq,
1013    ::prost::Message,
1014    schemars::JsonSchema,
1015    serde::Serialize,
1016    serde::Deserialize,
1017    desmos_std_derive::CosmwasmExt,
1018)]
1019#[proto_message(type_url = "/desmos.profiles.v3.MsgRequestDTagTransferResponse")]
1020#[serde(rename_all = "snake_case")]
1021pub struct MsgRequestDTagTransferResponse {}
1022/// MsgCancelDTagTransferRequest represents the message used to cancel a DTag
1023/// transfer request.
1024#[allow(clippy::derive_partial_eq_without_eq)]
1025#[derive(
1026    Clone,
1027    PartialEq,
1028    ::prost::Message,
1029    schemars::JsonSchema,
1030    serde::Serialize,
1031    serde::Deserialize,
1032    desmos_std_derive::CosmwasmExt,
1033)]
1034#[proto_message(type_url = "/desmos.profiles.v3.MsgCancelDTagTransferRequest")]
1035#[serde(rename_all = "snake_case")]
1036pub struct MsgCancelDTagTransferRequest {
1037    /// Receiver contains the address of the request receiver
1038    #[prost(string, tag = "1")]
1039    pub receiver: ::prost::alloc::string::String,
1040    /// Sender contains the address of the requets sender
1041    #[prost(string, tag = "2")]
1042    pub sender: ::prost::alloc::string::String,
1043}
1044/// MsgCancelDTagTransferRequestResponse represents the
1045/// Msg/CancelDTagTransferRequest response type.
1046#[allow(clippy::derive_partial_eq_without_eq)]
1047#[derive(
1048    Clone,
1049    PartialEq,
1050    ::prost::Message,
1051    schemars::JsonSchema,
1052    serde::Serialize,
1053    serde::Deserialize,
1054    desmos_std_derive::CosmwasmExt,
1055)]
1056#[proto_message(type_url = "/desmos.profiles.v3.MsgCancelDTagTransferRequestResponse")]
1057#[serde(rename_all = "snake_case")]
1058pub struct MsgCancelDTagTransferRequestResponse {}
1059/// MsgAcceptDTagTransferRequest represents the message used to accept a DTag
1060/// transfer request.
1061#[allow(clippy::derive_partial_eq_without_eq)]
1062#[derive(
1063    Clone,
1064    PartialEq,
1065    ::prost::Message,
1066    schemars::JsonSchema,
1067    serde::Serialize,
1068    serde::Deserialize,
1069    desmos_std_derive::CosmwasmExt,
1070)]
1071#[proto_message(type_url = "/desmos.profiles.v3.MsgAcceptDTagTransferRequest")]
1072#[serde(rename_all = "snake_case")]
1073pub struct MsgAcceptDTagTransferRequest {
1074    /// NewDTag represents the DTag that the request receiver will obtain if they
1075    /// accept the request
1076    #[prost(string, tag = "1")]
1077    pub new_dtag: ::prost::alloc::string::String,
1078    /// Sender represents the request sender
1079    #[prost(string, tag = "2")]
1080    pub sender: ::prost::alloc::string::String,
1081    /// Receiver represents the request receiver
1082    #[prost(string, tag = "3")]
1083    pub receiver: ::prost::alloc::string::String,
1084}
1085/// MsgAcceptDTagTransferRequestResponse defines the
1086/// Msg/AcceptDTagTransferRequest response.
1087#[allow(clippy::derive_partial_eq_without_eq)]
1088#[derive(
1089    Clone,
1090    PartialEq,
1091    ::prost::Message,
1092    schemars::JsonSchema,
1093    serde::Serialize,
1094    serde::Deserialize,
1095    desmos_std_derive::CosmwasmExt,
1096)]
1097#[proto_message(type_url = "/desmos.profiles.v3.MsgAcceptDTagTransferRequestResponse")]
1098#[serde(rename_all = "snake_case")]
1099pub struct MsgAcceptDTagTransferRequestResponse {}
1100/// MsgRefuseDTagTransferRequest represents the message used to refuse a DTag
1101/// transfer request.
1102#[allow(clippy::derive_partial_eq_without_eq)]
1103#[derive(
1104    Clone,
1105    PartialEq,
1106    ::prost::Message,
1107    schemars::JsonSchema,
1108    serde::Serialize,
1109    serde::Deserialize,
1110    desmos_std_derive::CosmwasmExt,
1111)]
1112#[proto_message(type_url = "/desmos.profiles.v3.MsgRefuseDTagTransferRequest")]
1113#[serde(rename_all = "snake_case")]
1114pub struct MsgRefuseDTagTransferRequest {
1115    /// Sender represents the request sender
1116    #[prost(string, tag = "1")]
1117    pub sender: ::prost::alloc::string::String,
1118    /// Receiver represents the request receiver
1119    #[prost(string, tag = "2")]
1120    pub receiver: ::prost::alloc::string::String,
1121}
1122/// MsgRefuseDTagTransferRequestResponse defines the
1123/// Msg/RefuseDTagTransferRequest response.
1124#[allow(clippy::derive_partial_eq_without_eq)]
1125#[derive(
1126    Clone,
1127    PartialEq,
1128    ::prost::Message,
1129    schemars::JsonSchema,
1130    serde::Serialize,
1131    serde::Deserialize,
1132    desmos_std_derive::CosmwasmExt,
1133)]
1134#[proto_message(type_url = "/desmos.profiles.v3.MsgRefuseDTagTransferRequestResponse")]
1135#[serde(rename_all = "snake_case")]
1136pub struct MsgRefuseDTagTransferRequestResponse {}
1137/// MsgLinkChainAccount represents a message to link an account to a profile.
1138#[allow(clippy::derive_partial_eq_without_eq)]
1139#[derive(
1140    Clone,
1141    PartialEq,
1142    ::prost::Message,
1143    schemars::JsonSchema,
1144    serde::Serialize,
1145    serde::Deserialize,
1146    desmos_std_derive::CosmwasmExt,
1147)]
1148#[proto_message(type_url = "/desmos.profiles.v3.MsgLinkChainAccount")]
1149#[serde(rename_all = "snake_case")]
1150pub struct MsgLinkChainAccount {
1151    /// ChainAddress contains the details of the external chain address to be
1152    /// linked
1153    #[prost(message, optional, tag = "1")]
1154    pub chain_address: ::core::option::Option<crate::shim::Any>,
1155    /// Proof contains the proof of ownership of the external chain address
1156    #[prost(message, optional, tag = "2")]
1157    pub proof: ::core::option::Option<Proof>,
1158    /// ChainConfig contains the configuration of the external chain
1159    #[prost(message, optional, tag = "3")]
1160    pub chain_config: ::core::option::Option<ChainConfig>,
1161    /// Signer represents the Desmos address associated with the
1162    /// profile to which link the external account
1163    #[prost(string, tag = "4")]
1164    pub signer: ::prost::alloc::string::String,
1165}
1166/// MsgLinkChainAccountResponse defines the Msg/LinkAccount response type.
1167#[allow(clippy::derive_partial_eq_without_eq)]
1168#[derive(
1169    Clone,
1170    PartialEq,
1171    ::prost::Message,
1172    schemars::JsonSchema,
1173    serde::Serialize,
1174    serde::Deserialize,
1175    desmos_std_derive::CosmwasmExt,
1176)]
1177#[proto_message(type_url = "/desmos.profiles.v3.MsgLinkChainAccountResponse")]
1178#[serde(rename_all = "snake_case")]
1179pub struct MsgLinkChainAccountResponse {}
1180/// MsgUnlinkChainAccount represents a message to unlink an account from a
1181/// profile.
1182#[allow(clippy::derive_partial_eq_without_eq)]
1183#[derive(
1184    Clone,
1185    PartialEq,
1186    ::prost::Message,
1187    schemars::JsonSchema,
1188    serde::Serialize,
1189    serde::Deserialize,
1190    desmos_std_derive::CosmwasmExt,
1191)]
1192#[proto_message(type_url = "/desmos.profiles.v3.MsgUnlinkChainAccount")]
1193#[serde(rename_all = "snake_case")]
1194pub struct MsgUnlinkChainAccount {
1195    /// Owner represents the Desmos profile from which to remove the link
1196    #[prost(string, tag = "1")]
1197    pub owner: ::prost::alloc::string::String,
1198    /// ChainName represents the name of the chain to which the link to remove is
1199    /// associated
1200    #[prost(string, tag = "2")]
1201    pub chain_name: ::prost::alloc::string::String,
1202    /// Target represents the external address to be removed
1203    #[prost(string, tag = "3")]
1204    pub target: ::prost::alloc::string::String,
1205}
1206/// MsgUnlinkChainAccountResponse defines the Msg/UnlinkAccount response type.
1207#[allow(clippy::derive_partial_eq_without_eq)]
1208#[derive(
1209    Clone,
1210    PartialEq,
1211    ::prost::Message,
1212    schemars::JsonSchema,
1213    serde::Serialize,
1214    serde::Deserialize,
1215    desmos_std_derive::CosmwasmExt,
1216)]
1217#[proto_message(type_url = "/desmos.profiles.v3.MsgUnlinkChainAccountResponse")]
1218#[serde(rename_all = "snake_case")]
1219pub struct MsgUnlinkChainAccountResponse {}
1220/// MsgSetDefaultExternalAddress represents the message used to set a default
1221/// address for a specific chain
1222#[allow(clippy::derive_partial_eq_without_eq)]
1223#[derive(
1224    Clone,
1225    PartialEq,
1226    ::prost::Message,
1227    schemars::JsonSchema,
1228    serde::Serialize,
1229    serde::Deserialize,
1230    desmos_std_derive::CosmwasmExt,
1231)]
1232#[proto_message(type_url = "/desmos.profiles.v3.MsgSetDefaultExternalAddress")]
1233#[serde(rename_all = "snake_case")]
1234pub struct MsgSetDefaultExternalAddress {
1235    /// Name of the chain for which to set the default address
1236    #[prost(string, tag = "1")]
1237    pub chain_name: ::prost::alloc::string::String,
1238    /// Address to be set as the default one
1239    #[prost(string, tag = "2")]
1240    pub target: ::prost::alloc::string::String,
1241    /// User signing the message
1242    #[prost(string, tag = "3")]
1243    pub signer: ::prost::alloc::string::String,
1244}
1245/// MsgSetDefaultExternalAddressResponse represents the
1246/// Msg/SetDefaultExternalAddress response type
1247#[allow(clippy::derive_partial_eq_without_eq)]
1248#[derive(
1249    Clone,
1250    PartialEq,
1251    ::prost::Message,
1252    schemars::JsonSchema,
1253    serde::Serialize,
1254    serde::Deserialize,
1255    desmos_std_derive::CosmwasmExt,
1256)]
1257#[proto_message(type_url = "/desmos.profiles.v3.MsgSetDefaultExternalAddressResponse")]
1258#[serde(rename_all = "snake_case")]
1259pub struct MsgSetDefaultExternalAddressResponse {}
1260/// MsgLinkApplication defines a msg to connect a profile with a
1261/// centralized application account (eg. Twitter, GitHub, etc).
1262#[allow(clippy::derive_partial_eq_without_eq)]
1263#[derive(
1264    Clone,
1265    PartialEq,
1266    ::prost::Message,
1267    schemars::JsonSchema,
1268    serde::Serialize,
1269    serde::Deserialize,
1270    desmos_std_derive::CosmwasmExt,
1271)]
1272#[proto_message(type_url = "/desmos.profiles.v3.MsgLinkApplication")]
1273#[serde(rename_all = "snake_case")]
1274pub struct MsgLinkApplication {
1275    /// The sender of the connection request
1276    #[prost(string, tag = "1")]
1277    pub sender: ::prost::alloc::string::String,
1278    /// LinkData contains the data related to the application to which connect
1279    #[prost(message, optional, tag = "2")]
1280    pub link_data: ::core::option::Option<Data>,
1281    /// Hex encoded call data that will be sent to the data source in order to
1282    /// verify the link
1283    #[prost(string, tag = "3")]
1284    pub call_data: ::prost::alloc::string::String,
1285    /// The port on which the packet will be sent
1286    #[prost(string, tag = "4")]
1287    pub source_port: ::prost::alloc::string::String,
1288    /// The channel by which the packet will be sent
1289    #[prost(string, tag = "5")]
1290    pub source_channel: ::prost::alloc::string::String,
1291    /// Timeout height relative to the current block height.
1292    /// The timeout is disabled when set to 0.
1293    #[prost(message, optional, tag = "6")]
1294    pub timeout_height: ::core::option::Option<super::super::super::ibc::core::client::v1::Height>,
1295    /// Timeout timestamp (in nanoseconds) relative to the current block timestamp.
1296    /// The timeout is disabled when set to 0.
1297    #[prost(uint64, tag = "7")]
1298    #[serde(
1299        serialize_with = "crate::serde::as_str::serialize",
1300        deserialize_with = "crate::serde::as_str::deserialize"
1301    )]
1302    pub timeout_timestamp: u64,
1303}
1304/// MsgLinkApplicationResponse defines the Msg/LinkApplication
1305/// response type.
1306#[allow(clippy::derive_partial_eq_without_eq)]
1307#[derive(
1308    Clone,
1309    PartialEq,
1310    ::prost::Message,
1311    schemars::JsonSchema,
1312    serde::Serialize,
1313    serde::Deserialize,
1314    desmos_std_derive::CosmwasmExt,
1315)]
1316#[proto_message(type_url = "/desmos.profiles.v3.MsgLinkApplicationResponse")]
1317#[serde(rename_all = "snake_case")]
1318pub struct MsgLinkApplicationResponse {}
1319/// MsgUnlinkApplication defines a msg to delete an application link from a user
1320/// profile
1321#[allow(clippy::derive_partial_eq_without_eq)]
1322#[derive(
1323    Clone,
1324    PartialEq,
1325    ::prost::Message,
1326    schemars::JsonSchema,
1327    serde::Serialize,
1328    serde::Deserialize,
1329    desmos_std_derive::CosmwasmExt,
1330)]
1331#[proto_message(type_url = "/desmos.profiles.v3.MsgUnlinkApplication")]
1332#[serde(rename_all = "snake_case")]
1333pub struct MsgUnlinkApplication {
1334    /// Application represents the name of the application to unlink
1335    #[prost(string, tag = "1")]
1336    pub application: ::prost::alloc::string::String,
1337    /// Username represents the username inside the application to unlink
1338    #[prost(string, tag = "2")]
1339    pub username: ::prost::alloc::string::String,
1340    /// Signer represents the Desmos account to which the application should be
1341    /// unlinked
1342    #[prost(string, tag = "3")]
1343    pub signer: ::prost::alloc::string::String,
1344}
1345/// MsgUnlinkApplicationResponse defines the Msg/UnlinkApplication response
1346/// type.
1347#[allow(clippy::derive_partial_eq_without_eq)]
1348#[derive(
1349    Clone,
1350    PartialEq,
1351    ::prost::Message,
1352    schemars::JsonSchema,
1353    serde::Serialize,
1354    serde::Deserialize,
1355    desmos_std_derive::CosmwasmExt,
1356)]
1357#[proto_message(type_url = "/desmos.profiles.v3.MsgUnlinkApplicationResponse")]
1358#[serde(rename_all = "snake_case")]
1359pub struct MsgUnlinkApplicationResponse {}
1360/// MsgUpdateParams is the Msg/UpdateParams request type.
1361///
1362/// Since: Desmos 5.0.0
1363#[allow(clippy::derive_partial_eq_without_eq)]
1364#[derive(
1365    Clone,
1366    PartialEq,
1367    ::prost::Message,
1368    schemars::JsonSchema,
1369    serde::Serialize,
1370    serde::Deserialize,
1371    desmos_std_derive::CosmwasmExt,
1372)]
1373#[proto_message(type_url = "/desmos.profiles.v3.MsgUpdateParams")]
1374#[serde(rename_all = "snake_case")]
1375pub struct MsgUpdateParams {
1376    /// authority is the address that controls the module (defaults to x/gov unless
1377    /// overwritten).
1378    #[prost(string, tag = "1")]
1379    pub authority: ::prost::alloc::string::String,
1380    /// params defines the parameters to update.
1381    ///
1382    /// NOTE: All parameters must be supplied.
1383    #[prost(message, optional, tag = "2")]
1384    pub params: ::core::option::Option<Params>,
1385}
1386/// MsgUpdateParamsResponse defines the response structure for executing a
1387/// MsgUpdateParams message.
1388///
1389/// Since: Desmos 5.0.0
1390#[allow(clippy::derive_partial_eq_without_eq)]
1391#[derive(
1392    Clone,
1393    PartialEq,
1394    ::prost::Message,
1395    schemars::JsonSchema,
1396    serde::Serialize,
1397    serde::Deserialize,
1398    desmos_std_derive::CosmwasmExt,
1399)]
1400#[proto_message(type_url = "/desmos.profiles.v3.MsgUpdateParamsResponse")]
1401#[serde(rename_all = "snake_case")]
1402pub struct MsgUpdateParamsResponse {}
1403/// QueryProfileRequest is the request type for the Query/Profile RPC method.
1404#[allow(clippy::derive_partial_eq_without_eq)]
1405#[derive(
1406    Clone,
1407    PartialEq,
1408    ::prost::Message,
1409    schemars::JsonSchema,
1410    serde::Serialize,
1411    serde::Deserialize,
1412    desmos_std_derive::CosmwasmExt,
1413)]
1414#[proto_message(type_url = "/desmos.profiles.v3.QueryProfileRequest")]
1415#[serde(rename_all = "snake_case")]
1416#[proto_query(
1417    path = "/desmos.profiles.v3.Query/Profile",
1418    response_type = QueryProfileResponse
1419)]
1420pub struct QueryProfileRequest {
1421    /// Address or DTag of the user to query the profile for
1422    #[prost(string, tag = "1")]
1423    pub user: ::prost::alloc::string::String,
1424}
1425/// QueryProfileResponse is the response type for the Query/Profile RPC method.
1426#[allow(clippy::derive_partial_eq_without_eq)]
1427#[derive(
1428    Clone,
1429    PartialEq,
1430    ::prost::Message,
1431    schemars::JsonSchema,
1432    serde::Serialize,
1433    serde::Deserialize,
1434    desmos_std_derive::CosmwasmExt,
1435)]
1436#[proto_message(type_url = "/desmos.profiles.v3.QueryProfileResponse")]
1437#[serde(rename_all = "snake_case")]
1438pub struct QueryProfileResponse {
1439    #[prost(message, optional, tag = "1")]
1440    pub profile: ::core::option::Option<crate::shim::Any>,
1441}
1442/// QueryIncomingDTagTransferRequestsRequest is the request type for the
1443/// Query/IncomingDTagTransferRequests RPC endpoint
1444#[allow(clippy::derive_partial_eq_without_eq)]
1445#[derive(
1446    Clone,
1447    PartialEq,
1448    ::prost::Message,
1449    schemars::JsonSchema,
1450    serde::Serialize,
1451    serde::Deserialize,
1452    desmos_std_derive::CosmwasmExt,
1453)]
1454#[proto_message(type_url = "/desmos.profiles.v3.QueryIncomingDTagTransferRequestsRequest")]
1455#[serde(rename_all = "snake_case")]
1456#[proto_query(
1457    path = "/desmos.profiles.v3.Query/IncomingDTagTransferRequests",
1458    response_type = QueryIncomingDTagTransferRequestsResponse
1459)]
1460pub struct QueryIncomingDTagTransferRequestsRequest {
1461    /// (optional) Receiver represents the address of the user to which query the
1462    /// incoming requests for
1463    #[prost(string, tag = "1")]
1464    pub receiver: ::prost::alloc::string::String,
1465    /// Pagination defines an optional pagination for the request
1466    #[prost(message, optional, tag = "2")]
1467    pub pagination:
1468        ::core::option::Option<super::super::super::cosmos::base::query::v1beta1::PageRequest>,
1469}
1470/// QueryIncomingDTagTransferRequestsResponse is the response type for the
1471/// Query/IncomingDTagTransferRequests RPC method.
1472#[allow(clippy::derive_partial_eq_without_eq)]
1473#[derive(
1474    Clone,
1475    PartialEq,
1476    ::prost::Message,
1477    schemars::JsonSchema,
1478    serde::Serialize,
1479    serde::Deserialize,
1480    desmos_std_derive::CosmwasmExt,
1481)]
1482#[proto_message(type_url = "/desmos.profiles.v3.QueryIncomingDTagTransferRequestsResponse")]
1483#[serde(rename_all = "snake_case")]
1484pub struct QueryIncomingDTagTransferRequestsResponse {
1485    /// Requests represent the list of all the DTag transfer requests made towards
1486    /// the user
1487    #[prost(message, repeated, tag = "1")]
1488    pub requests: ::prost::alloc::vec::Vec<DTagTransferRequest>,
1489    /// Pagination defines the pagination response
1490    #[prost(message, optional, tag = "2")]
1491    pub pagination:
1492        ::core::option::Option<super::super::super::cosmos::base::query::v1beta1::PageResponse>,
1493}
1494/// QueryParamsRequest is the request type for the Query/Params RPC endpoint
1495#[allow(clippy::derive_partial_eq_without_eq)]
1496#[derive(
1497    Clone,
1498    PartialEq,
1499    ::prost::Message,
1500    schemars::JsonSchema,
1501    serde::Serialize,
1502    serde::Deserialize,
1503    desmos_std_derive::CosmwasmExt,
1504)]
1505#[proto_message(type_url = "/desmos.profiles.v3.QueryParamsRequest")]
1506#[serde(rename_all = "snake_case")]
1507#[proto_query(
1508    path = "/desmos.profiles.v3.Query/Params",
1509    response_type = QueryParamsResponse
1510)]
1511pub struct QueryParamsRequest {}
1512/// QueryParamsResponse is the response type for the Query/Params RPC method.
1513#[allow(clippy::derive_partial_eq_without_eq)]
1514#[derive(
1515    Clone,
1516    PartialEq,
1517    ::prost::Message,
1518    schemars::JsonSchema,
1519    serde::Serialize,
1520    serde::Deserialize,
1521    desmos_std_derive::CosmwasmExt,
1522)]
1523#[proto_message(type_url = "/desmos.profiles.v3.QueryParamsResponse")]
1524#[serde(rename_all = "snake_case")]
1525pub struct QueryParamsResponse {
1526    #[prost(message, optional, tag = "1")]
1527    pub params: ::core::option::Option<Params>,
1528}
1529/// QueryChainLinksRequest represents the request that should be used in order
1530/// to retrieve the link associated with the provided user, for the given chain
1531/// and having the given target address
1532#[allow(clippy::derive_partial_eq_without_eq)]
1533#[derive(
1534    Clone,
1535    PartialEq,
1536    ::prost::Message,
1537    schemars::JsonSchema,
1538    serde::Serialize,
1539    serde::Deserialize,
1540    desmos_std_derive::CosmwasmExt,
1541)]
1542#[proto_message(type_url = "/desmos.profiles.v3.QueryChainLinksRequest")]
1543#[serde(rename_all = "snake_case")]
1544#[proto_query(
1545    path = "/desmos.profiles.v3.Query/ChainLinks",
1546    response_type = QueryChainLinksResponse
1547)]
1548pub struct QueryChainLinksRequest {
1549    /// (optional) User represents the Desmos address of the user to which search
1550    /// the link for
1551    #[prost(string, tag = "1")]
1552    pub user: ::prost::alloc::string::String,
1553    /// (optional) ChainName contains the name of the chain to which search the
1554    /// link for. Used only if user is also set
1555    #[prost(string, tag = "2")]
1556    pub chain_name: ::prost::alloc::string::String,
1557    /// (optional) Target must contain the external address to which query the link
1558    /// for. Used only if chain name is also set
1559    #[prost(string, tag = "3")]
1560    pub target: ::prost::alloc::string::String,
1561    /// Pagination defines an optional pagination for the request
1562    #[prost(message, optional, tag = "4")]
1563    pub pagination:
1564        ::core::option::Option<super::super::super::cosmos::base::query::v1beta1::PageRequest>,
1565}
1566/// QueryChainLinksResponse is the response type for the
1567/// Query/ChainLinks RPC method.
1568#[allow(clippy::derive_partial_eq_without_eq)]
1569#[derive(
1570    Clone,
1571    PartialEq,
1572    ::prost::Message,
1573    schemars::JsonSchema,
1574    serde::Serialize,
1575    serde::Deserialize,
1576    desmos_std_derive::CosmwasmExt,
1577)]
1578#[proto_message(type_url = "/desmos.profiles.v3.QueryChainLinksResponse")]
1579#[serde(rename_all = "snake_case")]
1580pub struct QueryChainLinksResponse {
1581    #[prost(message, repeated, tag = "1")]
1582    pub links: ::prost::alloc::vec::Vec<ChainLink>,
1583    /// Pagination defines the pagination response
1584    #[prost(message, optional, tag = "2")]
1585    pub pagination:
1586        ::core::option::Option<super::super::super::cosmos::base::query::v1beta1::PageResponse>,
1587}
1588/// QueryChainLinkOwnersRequest contains the data of the request that can
1589/// be used to get chain link owners
1590#[allow(clippy::derive_partial_eq_without_eq)]
1591#[derive(
1592    Clone,
1593    PartialEq,
1594    ::prost::Message,
1595    schemars::JsonSchema,
1596    serde::Serialize,
1597    serde::Deserialize,
1598    desmos_std_derive::CosmwasmExt,
1599)]
1600#[proto_message(type_url = "/desmos.profiles.v3.QueryChainLinkOwnersRequest")]
1601#[serde(rename_all = "snake_case")]
1602#[proto_query(
1603    path = "/desmos.profiles.v3.Query/ChainLinkOwners",
1604    response_type = QueryChainLinkOwnersResponse
1605)]
1606pub struct QueryChainLinkOwnersRequest {
1607    /// (Optional) Chain name to search link owners of. If not specified, all
1608    /// links stored will be searched instead.
1609    #[prost(string, tag = "1")]
1610    pub chain_name: ::prost::alloc::string::String,
1611    /// (Optional) External address to search for. This will only be used if the
1612    /// chain name is specified as well
1613    #[prost(string, tag = "2")]
1614    pub target: ::prost::alloc::string::String,
1615    /// Pagination defines an optional pagination for the request
1616    #[prost(message, optional, tag = "3")]
1617    pub pagination:
1618        ::core::option::Option<super::super::super::cosmos::base::query::v1beta1::PageRequest>,
1619}
1620/// QueryChainLinkOwnersResponse contains the data returned by the request
1621/// allowing to get chain link owners.
1622#[allow(clippy::derive_partial_eq_without_eq)]
1623#[derive(
1624    Clone,
1625    PartialEq,
1626    ::prost::Message,
1627    schemars::JsonSchema,
1628    serde::Serialize,
1629    serde::Deserialize,
1630    desmos_std_derive::CosmwasmExt,
1631)]
1632#[proto_message(type_url = "/desmos.profiles.v3.QueryChainLinkOwnersResponse")]
1633#[serde(rename_all = "snake_case")]
1634pub struct QueryChainLinkOwnersResponse {
1635    /// Addresses of the chain links owners
1636    #[prost(message, repeated, tag = "1")]
1637    pub owners: ::prost::alloc::vec::Vec<query_chain_link_owners_response::ChainLinkOwnerDetails>,
1638    /// Pagination defines the pagination response
1639    #[prost(message, optional, tag = "2")]
1640    pub pagination:
1641        ::core::option::Option<super::super::super::cosmos::base::query::v1beta1::PageResponse>,
1642}
1643/// Nested message and enum types in `QueryChainLinkOwnersResponse`.
1644pub mod query_chain_link_owners_response {
1645    /// ChainLinkOwnerDetails contains the details of a single chain link owner
1646    #[allow(clippy::derive_partial_eq_without_eq)]
1647    #[derive(
1648        Clone,
1649        PartialEq,
1650        ::prost::Message,
1651        schemars::JsonSchema,
1652        serde::Serialize,
1653        serde::Deserialize,
1654        desmos_std_derive::CosmwasmExt,
1655    )]
1656    #[proto_message(
1657        type_url = "/desmos.profiles.v3.QueryChainLinkOwnersResponse.ChainLinkOwnerDetails"
1658    )]
1659    #[serde(rename_all = "snake_case")]
1660    pub struct ChainLinkOwnerDetails {
1661        #[prost(string, tag = "1")]
1662        pub user: ::prost::alloc::string::String,
1663        #[prost(string, tag = "2")]
1664        pub chain_name: ::prost::alloc::string::String,
1665        #[prost(string, tag = "3")]
1666        pub target: ::prost::alloc::string::String,
1667    }
1668}
1669/// QueryDefaultExternalAddressesRequest is the request type for
1670/// Query/DefaultExternalAddresses RPC method
1671#[allow(clippy::derive_partial_eq_without_eq)]
1672#[derive(
1673    Clone,
1674    PartialEq,
1675    ::prost::Message,
1676    schemars::JsonSchema,
1677    serde::Serialize,
1678    serde::Deserialize,
1679    desmos_std_derive::CosmwasmExt,
1680)]
1681#[proto_message(type_url = "/desmos.profiles.v3.QueryDefaultExternalAddressesRequest")]
1682#[serde(rename_all = "snake_case")]
1683#[proto_query(
1684    path = "/desmos.profiles.v3.Query/DefaultExternalAddresses",
1685    response_type = QueryDefaultExternalAddressesResponse
1686)]
1687pub struct QueryDefaultExternalAddressesRequest {
1688    /// (Optional) Owner for which to query the default addresses
1689    #[prost(string, tag = "1")]
1690    pub owner: ::prost::alloc::string::String,
1691    /// (Optional) Chain name to query the default address for
1692    #[prost(string, tag = "2")]
1693    pub chain_name: ::prost::alloc::string::String,
1694    /// Pagination defines an optional pagination for the request.
1695    #[prost(message, optional, tag = "3")]
1696    pub pagination:
1697        ::core::option::Option<super::super::super::cosmos::base::query::v1beta1::PageRequest>,
1698}
1699/// QueryDefaultExternalAddressesResponse is the response type for
1700/// Query/DefaultExternalAddresses RPC method
1701#[allow(clippy::derive_partial_eq_without_eq)]
1702#[derive(
1703    Clone,
1704    PartialEq,
1705    ::prost::Message,
1706    schemars::JsonSchema,
1707    serde::Serialize,
1708    serde::Deserialize,
1709    desmos_std_derive::CosmwasmExt,
1710)]
1711#[proto_message(type_url = "/desmos.profiles.v3.QueryDefaultExternalAddressesResponse")]
1712#[serde(rename_all = "snake_case")]
1713pub struct QueryDefaultExternalAddressesResponse {
1714    /// List of default addresses, each one represented by the associated chain
1715    /// link
1716    #[prost(message, repeated, tag = "1")]
1717    pub links: ::prost::alloc::vec::Vec<ChainLink>,
1718    #[prost(message, optional, tag = "2")]
1719    pub pagination:
1720        ::core::option::Option<super::super::super::cosmos::base::query::v1beta1::PageResponse>,
1721}
1722/// QueryUserApplicationLinkRequest represents the request used when querying an
1723/// application link using an application name and username for a given user
1724#[allow(clippy::derive_partial_eq_without_eq)]
1725#[derive(
1726    Clone,
1727    PartialEq,
1728    ::prost::Message,
1729    schemars::JsonSchema,
1730    serde::Serialize,
1731    serde::Deserialize,
1732    desmos_std_derive::CosmwasmExt,
1733)]
1734#[proto_message(type_url = "/desmos.profiles.v3.QueryApplicationLinksRequest")]
1735#[serde(rename_all = "snake_case")]
1736#[proto_query(
1737    path = "/desmos.profiles.v3.Query/ApplicationLinks",
1738    response_type = QueryApplicationLinksResponse
1739)]
1740pub struct QueryApplicationLinksRequest {
1741    /// (Optional) User contains the Desmos profile address associated for which
1742    /// the link should be searched for
1743    #[prost(string, tag = "1")]
1744    pub user: ::prost::alloc::string::String,
1745    /// (Optional) Application represents the application name associated with the
1746    /// link. Used only if user is also set.
1747    #[prost(string, tag = "2")]
1748    pub application: ::prost::alloc::string::String,
1749    /// Username represents the username inside the application associated with the
1750    /// link. Used only if application is also set.
1751    #[prost(string, tag = "3")]
1752    pub username: ::prost::alloc::string::String,
1753    /// Pagination defines an optional pagination for the request
1754    #[prost(message, optional, tag = "4")]
1755    pub pagination:
1756        ::core::option::Option<super::super::super::cosmos::base::query::v1beta1::PageRequest>,
1757}
1758/// QueryApplicationLinksResponse represents the response to the query used
1759/// to get the application links for a specific user
1760#[allow(clippy::derive_partial_eq_without_eq)]
1761#[derive(
1762    Clone,
1763    PartialEq,
1764    ::prost::Message,
1765    schemars::JsonSchema,
1766    serde::Serialize,
1767    serde::Deserialize,
1768    desmos_std_derive::CosmwasmExt,
1769)]
1770#[proto_message(type_url = "/desmos.profiles.v3.QueryApplicationLinksResponse")]
1771#[serde(rename_all = "snake_case")]
1772pub struct QueryApplicationLinksResponse {
1773    #[prost(message, repeated, tag = "1")]
1774    pub links: ::prost::alloc::vec::Vec<ApplicationLink>,
1775    /// Pagination defines the pagination response
1776    #[prost(message, optional, tag = "2")]
1777    pub pagination:
1778        ::core::option::Option<super::super::super::cosmos::base::query::v1beta1::PageResponse>,
1779}
1780/// QueryApplicationLinkByClientIDRequest contains the data of the request that
1781/// can be used to get an application link based on a client id
1782#[allow(clippy::derive_partial_eq_without_eq)]
1783#[derive(
1784    Clone,
1785    PartialEq,
1786    ::prost::Message,
1787    schemars::JsonSchema,
1788    serde::Serialize,
1789    serde::Deserialize,
1790    desmos_std_derive::CosmwasmExt,
1791)]
1792#[proto_message(type_url = "/desmos.profiles.v3.QueryApplicationLinkByClientIDRequest")]
1793#[serde(rename_all = "snake_case")]
1794#[proto_query(
1795    path = "/desmos.profiles.v3.Query/ApplicationLinkByClientID",
1796    response_type = QueryApplicationLinkByClientIdResponse
1797)]
1798pub struct QueryApplicationLinkByClientIdRequest {
1799    /// ClientID represents the ID of the client to which search the link for
1800    #[prost(string, tag = "1")]
1801    pub client_id: ::prost::alloc::string::String,
1802}
1803/// QueryApplicationLinkByClientIDResponse contains the data returned by the
1804/// request allowing to get an application link using a client id
1805#[allow(clippy::derive_partial_eq_without_eq)]
1806#[derive(
1807    Clone,
1808    PartialEq,
1809    ::prost::Message,
1810    schemars::JsonSchema,
1811    serde::Serialize,
1812    serde::Deserialize,
1813    desmos_std_derive::CosmwasmExt,
1814)]
1815#[proto_message(type_url = "/desmos.profiles.v3.QueryApplicationLinkByClientIDResponse")]
1816#[serde(rename_all = "snake_case")]
1817pub struct QueryApplicationLinkByClientIdResponse {
1818    #[prost(message, optional, tag = "1")]
1819    pub link: ::core::option::Option<ApplicationLink>,
1820}
1821/// QueryApplicationLinkOwnersRequest contains the data of the request that can
1822/// be used to get application link owners
1823#[allow(clippy::derive_partial_eq_without_eq)]
1824#[derive(
1825    Clone,
1826    PartialEq,
1827    ::prost::Message,
1828    schemars::JsonSchema,
1829    serde::Serialize,
1830    serde::Deserialize,
1831    desmos_std_derive::CosmwasmExt,
1832)]
1833#[proto_message(type_url = "/desmos.profiles.v3.QueryApplicationLinkOwnersRequest")]
1834#[serde(rename_all = "snake_case")]
1835#[proto_query(
1836    path = "/desmos.profiles.v3.Query/ApplicationLinkOwners",
1837    response_type = QueryApplicationLinkOwnersResponse
1838)]
1839pub struct QueryApplicationLinkOwnersRequest {
1840    /// (Optional) Application name to search link owners of. If not specified, all
1841    /// links stored will be searched instead.
1842    #[prost(string, tag = "1")]
1843    pub application: ::prost::alloc::string::String,
1844    /// (Optional) Username to search for. This will only be used if the
1845    /// application is specified as well
1846    #[prost(string, tag = "2")]
1847    pub username: ::prost::alloc::string::String,
1848    /// Pagination defines an optional pagination for the request
1849    #[prost(message, optional, tag = "3")]
1850    pub pagination:
1851        ::core::option::Option<super::super::super::cosmos::base::query::v1beta1::PageRequest>,
1852}
1853/// QueryApplicationLinkOwnersResponse contains the data returned by the request
1854/// allowing to get application link owners.
1855#[allow(clippy::derive_partial_eq_without_eq)]
1856#[derive(
1857    Clone,
1858    PartialEq,
1859    ::prost::Message,
1860    schemars::JsonSchema,
1861    serde::Serialize,
1862    serde::Deserialize,
1863    desmos_std_derive::CosmwasmExt,
1864)]
1865#[proto_message(type_url = "/desmos.profiles.v3.QueryApplicationLinkOwnersResponse")]
1866#[serde(rename_all = "snake_case")]
1867pub struct QueryApplicationLinkOwnersResponse {
1868    /// Addresses of the application links owners
1869    #[prost(message, repeated, tag = "1")]
1870    pub owners: ::prost::alloc::vec::Vec<
1871        query_application_link_owners_response::ApplicationLinkOwnerDetails,
1872    >,
1873    /// Pagination defines the pagination response
1874    #[prost(message, optional, tag = "2")]
1875    pub pagination:
1876        ::core::option::Option<super::super::super::cosmos::base::query::v1beta1::PageResponse>,
1877}
1878/// Nested message and enum types in `QueryApplicationLinkOwnersResponse`.
1879pub mod query_application_link_owners_response {
1880    /// ApplicationLinkOwnerDetails contains the details of a single application
1881    /// link owner
1882    #[allow(clippy::derive_partial_eq_without_eq)]
1883    #[derive(
1884        Clone,
1885        PartialEq,
1886        ::prost::Message,
1887        schemars::JsonSchema,
1888        serde::Serialize,
1889        serde::Deserialize,
1890        desmos_std_derive::CosmwasmExt,
1891    )]
1892    #[proto_message(
1893        type_url = "/desmos.profiles.v3.QueryApplicationLinkOwnersResponse.ApplicationLinkOwnerDetails"
1894    )]
1895    #[serde(rename_all = "snake_case")]
1896    pub struct ApplicationLinkOwnerDetails {
1897        #[prost(string, tag = "1")]
1898        pub user: ::prost::alloc::string::String,
1899        #[prost(string, tag = "2")]
1900        pub application: ::prost::alloc::string::String,
1901        #[prost(string, tag = "3")]
1902        pub username: ::prost::alloc::string::String,
1903    }
1904}
1905pub struct ProfilesQuerier<'a, Q: cosmwasm_std::CustomQuery> {
1906    querier: &'a cosmwasm_std::QuerierWrapper<'a, Q>,
1907}
1908impl<'a, Q: cosmwasm_std::CustomQuery> ProfilesQuerier<'a, Q> {
1909    pub fn new(querier: &'a cosmwasm_std::QuerierWrapper<'a, Q>) -> Self {
1910        Self { querier }
1911    }
1912    pub fn profile(
1913        &self,
1914        user: ::prost::alloc::string::String,
1915    ) -> std::result::Result<QueryProfileResponse, cosmwasm_std::StdError> {
1916        QueryProfileRequest { user }.query(self.querier)
1917    }
1918    pub fn incoming_d_tag_transfer_requests(
1919        &self,
1920        receiver: ::prost::alloc::string::String,
1921        pagination: ::core::option::Option<
1922            super::super::super::cosmos::base::query::v1beta1::PageRequest,
1923        >,
1924    ) -> std::result::Result<QueryIncomingDTagTransferRequestsResponse, cosmwasm_std::StdError>
1925    {
1926        QueryIncomingDTagTransferRequestsRequest {
1927            receiver,
1928            pagination,
1929        }
1930        .query(self.querier)
1931    }
1932    pub fn chain_links(
1933        &self,
1934        user: ::prost::alloc::string::String,
1935        chain_name: ::prost::alloc::string::String,
1936        target: ::prost::alloc::string::String,
1937        pagination: ::core::option::Option<
1938            super::super::super::cosmos::base::query::v1beta1::PageRequest,
1939        >,
1940    ) -> std::result::Result<QueryChainLinksResponse, cosmwasm_std::StdError> {
1941        QueryChainLinksRequest {
1942            user,
1943            chain_name,
1944            target,
1945            pagination,
1946        }
1947        .query(self.querier)
1948    }
1949    pub fn chain_link_owners(
1950        &self,
1951        chain_name: ::prost::alloc::string::String,
1952        target: ::prost::alloc::string::String,
1953        pagination: ::core::option::Option<
1954            super::super::super::cosmos::base::query::v1beta1::PageRequest,
1955        >,
1956    ) -> std::result::Result<QueryChainLinkOwnersResponse, cosmwasm_std::StdError> {
1957        QueryChainLinkOwnersRequest {
1958            chain_name,
1959            target,
1960            pagination,
1961        }
1962        .query(self.querier)
1963    }
1964    pub fn default_external_addresses(
1965        &self,
1966        owner: ::prost::alloc::string::String,
1967        chain_name: ::prost::alloc::string::String,
1968        pagination: ::core::option::Option<
1969            super::super::super::cosmos::base::query::v1beta1::PageRequest,
1970        >,
1971    ) -> std::result::Result<QueryDefaultExternalAddressesResponse, cosmwasm_std::StdError> {
1972        QueryDefaultExternalAddressesRequest {
1973            owner,
1974            chain_name,
1975            pagination,
1976        }
1977        .query(self.querier)
1978    }
1979    pub fn application_links(
1980        &self,
1981        user: ::prost::alloc::string::String,
1982        application: ::prost::alloc::string::String,
1983        username: ::prost::alloc::string::String,
1984        pagination: ::core::option::Option<
1985            super::super::super::cosmos::base::query::v1beta1::PageRequest,
1986        >,
1987    ) -> std::result::Result<QueryApplicationLinksResponse, cosmwasm_std::StdError> {
1988        QueryApplicationLinksRequest {
1989            user,
1990            application,
1991            username,
1992            pagination,
1993        }
1994        .query(self.querier)
1995    }
1996    pub fn application_link_by_client_id(
1997        &self,
1998        client_id: ::prost::alloc::string::String,
1999    ) -> std::result::Result<QueryApplicationLinkByClientIdResponse, cosmwasm_std::StdError> {
2000        QueryApplicationLinkByClientIdRequest { client_id }.query(self.querier)
2001    }
2002    pub fn application_link_owners(
2003        &self,
2004        application: ::prost::alloc::string::String,
2005        username: ::prost::alloc::string::String,
2006        pagination: ::core::option::Option<
2007            super::super::super::cosmos::base::query::v1beta1::PageRequest,
2008        >,
2009    ) -> std::result::Result<QueryApplicationLinkOwnersResponse, cosmwasm_std::StdError> {
2010        QueryApplicationLinkOwnersRequest {
2011            application,
2012            username,
2013            pagination,
2014        }
2015        .query(self.querier)
2016    }
2017    pub fn params(&self) -> std::result::Result<QueryParamsResponse, cosmwasm_std::StdError> {
2018        QueryParamsRequest {}.query(self.querier)
2019    }
2020}