use milkyway_std_derive::CosmwasmExt;
#[allow(clippy::derive_partial_eq_without_eq)]
#[derive(
    Clone,
    PartialEq,
    Eq,
    ::prost::Message,
    ::serde::Serialize,
    ::serde::Deserialize,
    ::schemars::JsonSchema,
    CosmwasmExt,
)]
#[proto_message(type_url = "/stride.icacallbacks.CallbackData")]
pub struct CallbackData {
    #[prost(string, tag = "1")]
    pub callback_key: ::prost::alloc::string::String,
    #[prost(string, tag = "2")]
    #[serde(alias = "portID")]
    pub port_id: ::prost::alloc::string::String,
    #[prost(string, tag = "3")]
    #[serde(alias = "channelID")]
    pub channel_id: ::prost::alloc::string::String,
    #[prost(uint64, tag = "4")]
    #[serde(
        serialize_with = "crate::serde::as_str::serialize",
        deserialize_with = "crate::serde::as_str::deserialize"
    )]
    pub sequence: u64,
    #[prost(string, tag = "5")]
    #[serde(alias = "callbackID")]
    pub callback_id: ::prost::alloc::string::String,
    #[prost(bytes = "vec", tag = "6")]
    #[serde(
        serialize_with = "crate::serde::as_base64_encoded_string::serialize",
        deserialize_with = "crate::serde::as_base64_encoded_string::deserialize"
    )]
    pub callback_args: ::prost::alloc::vec::Vec<u8>,
}
/// Params defines the parameters for the module.
#[allow(clippy::derive_partial_eq_without_eq)]
#[derive(
    Clone,
    PartialEq,
    Eq,
    ::prost::Message,
    ::serde::Serialize,
    ::serde::Deserialize,
    ::schemars::JsonSchema,
    CosmwasmExt,
)]
#[proto_message(type_url = "/stride.icacallbacks.Params")]
pub struct Params {}
/// GenesisState defines the icacallbacks module's genesis state.
#[allow(clippy::derive_partial_eq_without_eq)]
#[derive(
    Clone,
    PartialEq,
    Eq,
    ::prost::Message,
    ::serde::Serialize,
    ::serde::Deserialize,
    ::schemars::JsonSchema,
    CosmwasmExt,
)]
#[proto_message(type_url = "/stride.icacallbacks.GenesisState")]
pub struct GenesisState {
    #[prost(message, optional, tag = "1")]
    pub params: ::core::option::Option<Params>,
    #[prost(string, tag = "2")]
    #[serde(alias = "portID")]
    pub port_id: ::prost::alloc::string::String,
    /// this line is used by starport scaffolding # genesis/proto/state
    #[prost(message, repeated, tag = "3")]
    pub callback_data_list: ::prost::alloc::vec::Vec<CallbackData>,
}
#[allow(clippy::derive_partial_eq_without_eq)]
#[derive(
    Clone,
    PartialEq,
    Eq,
    ::prost::Message,
    ::serde::Serialize,
    ::serde::Deserialize,
    ::schemars::JsonSchema,
    CosmwasmExt,
)]
#[proto_message(type_url = "/stride.icacallbacks.IcacallbacksPacketData")]
pub struct IcacallbacksPacketData {
    #[prost(oneof = "icacallbacks_packet_data::Packet", tags = "1")]
    pub packet: ::core::option::Option<icacallbacks_packet_data::Packet>,
}
/// Nested message and enum types in `IcacallbacksPacketData`.
pub mod icacallbacks_packet_data {
    #[allow(clippy::derive_partial_eq_without_eq)]
    #[derive(
        Clone,
        PartialEq,
        Eq,
        ::prost::Oneof,
        ::serde::Serialize,
        ::serde::Deserialize,
        ::schemars::JsonSchema,
    )]
    pub enum Packet {
        /// this line is used by starport scaffolding # ibc/packet/proto/field
        #[prost(message, tag = "1")]
        NoData(super::NoData),
    }
}
#[allow(clippy::derive_partial_eq_without_eq)]
#[derive(
    Clone,
    PartialEq,
    Eq,
    ::prost::Message,
    ::serde::Serialize,
    ::serde::Deserialize,
    ::schemars::JsonSchema,
    CosmwasmExt,
)]
#[proto_message(type_url = "/stride.icacallbacks.NoData")]
pub struct NoData {}
/// QueryParamsRequest is request type for the Query/Params RPC method.
#[allow(clippy::derive_partial_eq_without_eq)]
#[derive(
    Clone,
    PartialEq,
    Eq,
    ::prost::Message,
    ::serde::Serialize,
    ::serde::Deserialize,
    ::schemars::JsonSchema,
    CosmwasmExt,
)]
#[proto_message(type_url = "/stride.icacallbacks.QueryParamsRequest")]
#[proto_query(
    path = "/stride.icacallbacks.Query/Params",
    response_type = QueryParamsResponse
)]
pub struct QueryParamsRequest {}
/// QueryParamsResponse is response type for the Query/Params RPC method.
#[allow(clippy::derive_partial_eq_without_eq)]
#[derive(
    Clone,
    PartialEq,
    Eq,
    ::prost::Message,
    ::serde::Serialize,
    ::serde::Deserialize,
    ::schemars::JsonSchema,
    CosmwasmExt,
)]
#[proto_message(type_url = "/stride.icacallbacks.QueryParamsResponse")]
pub struct QueryParamsResponse {
    /// params holds all the parameters of this module.
    #[prost(message, optional, tag = "1")]
    pub params: ::core::option::Option<Params>,
}
#[allow(clippy::derive_partial_eq_without_eq)]
#[derive(
    Clone,
    PartialEq,
    Eq,
    ::prost::Message,
    ::serde::Serialize,
    ::serde::Deserialize,
    ::schemars::JsonSchema,
    CosmwasmExt,
)]
#[proto_message(type_url = "/stride.icacallbacks.QueryGetCallbackDataRequest")]
#[proto_query(
    path = "/stride.icacallbacks.Query/CallbackData",
    response_type = QueryGetCallbackDataResponse
)]
pub struct QueryGetCallbackDataRequest {
    #[prost(string, tag = "1")]
    pub callback_key: ::prost::alloc::string::String,
}
#[allow(clippy::derive_partial_eq_without_eq)]
#[derive(
    Clone,
    PartialEq,
    Eq,
    ::prost::Message,
    ::serde::Serialize,
    ::serde::Deserialize,
    ::schemars::JsonSchema,
    CosmwasmExt,
)]
#[proto_message(type_url = "/stride.icacallbacks.QueryGetCallbackDataResponse")]
pub struct QueryGetCallbackDataResponse {
    #[prost(message, optional, tag = "1")]
    pub callback_data: ::core::option::Option<CallbackData>,
}
#[allow(clippy::derive_partial_eq_without_eq)]
#[derive(
    Clone,
    PartialEq,
    Eq,
    ::prost::Message,
    ::serde::Serialize,
    ::serde::Deserialize,
    ::schemars::JsonSchema,
    CosmwasmExt,
)]
#[proto_message(type_url = "/stride.icacallbacks.QueryAllCallbackDataRequest")]
#[proto_query(
    path = "/stride.icacallbacks.Query/CallbackDataAll",
    response_type = QueryAllCallbackDataResponse
)]
pub struct QueryAllCallbackDataRequest {
    #[prost(message, optional, tag = "1")]
    pub pagination: ::core::option::Option<super::super::cosmos::base::query::v1beta1::PageRequest>,
}
#[allow(clippy::derive_partial_eq_without_eq)]
#[derive(
    Clone,
    PartialEq,
    Eq,
    ::prost::Message,
    ::serde::Serialize,
    ::serde::Deserialize,
    ::schemars::JsonSchema,
    CosmwasmExt,
)]
#[proto_message(type_url = "/stride.icacallbacks.QueryAllCallbackDataResponse")]
pub struct QueryAllCallbackDataResponse {
    #[prost(message, repeated, tag = "1")]
    pub callback_data: ::prost::alloc::vec::Vec<CallbackData>,
    #[prost(message, optional, tag = "2")]
    pub pagination:
        ::core::option::Option<super::super::cosmos::base::query::v1beta1::PageResponse>,
}
pub struct IcacallbacksQuerier<'a, Q: cosmwasm_std::CustomQuery> {
    querier: &'a cosmwasm_std::QuerierWrapper<'a, Q>,
}
impl<'a, Q: cosmwasm_std::CustomQuery> IcacallbacksQuerier<'a, Q> {
    pub fn new(querier: &'a cosmwasm_std::QuerierWrapper<'a, Q>) -> Self {
        Self { querier }
    }
    pub fn params(&self) -> Result<QueryParamsResponse, cosmwasm_std::StdError> {
        QueryParamsRequest {}.query(self.querier)
    }
    pub fn callback_data(
        &self,
        callback_key: ::prost::alloc::string::String,
    ) -> Result<QueryGetCallbackDataResponse, cosmwasm_std::StdError> {
        QueryGetCallbackDataRequest { callback_key }.query(self.querier)
    }
    pub fn callback_data_all(
        &self,
        pagination: ::core::option::Option<super::super::cosmos::base::query::v1beta1::PageRequest>,
    ) -> Result<QueryAllCallbackDataResponse, cosmwasm_std::StdError> {
        QueryAllCallbackDataRequest { pagination }.query(self.querier)
    }
}
