diff --git a/.changelog/unreleased/breaking-changes/245-interchain-security-proto-v6.1.0.md b/.changelog/unreleased/breaking-changes/245-interchain-security-proto-v6.1.0.md new file mode 100644 index 00000000..cd6fd89d --- /dev/null +++ b/.changelog/unreleased/breaking-changes/245-interchain-security-proto-v6.1.0.md @@ -0,0 +1,2 @@ +- Update `interchain-security` to v6.1.0 + ([\#245](https://github.com/cosmos/ibc-proto-rs/issues/245)) \ No newline at end of file diff --git a/Cargo.toml b/Cargo.toml index 63830faa..57f22182 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -30,7 +30,7 @@ all-features = true [dependencies] prost = { version = "0.13", default-features = false, features = ["prost-derive"] } bytes = { version = "1.2", default-features = false } -tonic = { version = "0.12", default-features = false, optional = true } +tonic = { version = "0.12.3", default-features = false, optional = true } serde = { version = "1.0", default-features = false, optional = true } schemars = { version = "0.8", optional = true } subtle-encoding = { version = "0.5", default-features = false } diff --git a/src/INTERCHAIN_SECURITY_COMMIT b/src/INTERCHAIN_SECURITY_COMMIT index 53a649c6..e24485e4 100644 --- a/src/INTERCHAIN_SECURITY_COMMIT +++ b/src/INTERCHAIN_SECURITY_COMMIT @@ -1 +1 @@ -ea545b490b53b8e6f422492b4fb2820ab0bc140b +1e60637f9d8f3505208282416abfbb87fabc4795 diff --git a/src/prost/cosmos.evidence.v1beta1.rs b/src/prost/cosmos.evidence.v1beta1.rs new file mode 100644 index 00000000..2cf9ce03 --- /dev/null +++ b/src/prost/cosmos.evidence.v1beta1.rs @@ -0,0 +1,29 @@ +// This file is @generated by prost-build. +/// Equivocation implements the Evidence interface and defines evidence of double +/// signing misbehavior. +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Equivocation { + /// height is the equivocation height. + #[prost(int64, tag = "1")] + pub height: i64, + /// time is the equivocation time. + #[prost(message, optional, tag = "2")] + pub time: ::core::option::Option<::tendermint_proto::google::protobuf::Timestamp>, + /// power is the equivocation validator power. + #[prost(int64, tag = "3")] + pub power: i64, + /// consensus_address is the equivocation validator consensus address. + #[prost(string, tag = "4")] + pub consensus_address: ::prost::alloc::string::String, +} +impl ::prost::Name for Equivocation { + const NAME: &'static str = "Equivocation"; + const PACKAGE: &'static str = "cosmos.evidence.v1beta1"; + fn full_name() -> ::prost::alloc::string::String { + "cosmos.evidence.v1beta1.Equivocation".into() + } + fn type_url() -> ::prost::alloc::string::String { + "/cosmos.evidence.v1beta1.Equivocation".into() + } +} diff --git a/src/prost/ibc.applications.fee.v1.rs b/src/prost/ibc.applications.fee.v1.rs index 525271a4..7f0e9773 100644 --- a/src/prost/ibc.applications.fee.v1.rs +++ b/src/prost/ibc.applications.fee.v1.rs @@ -1,5 +1,6 @@ // This file is @generated by prost-build. /// Fee defines the ICS29 receive, acknowledgement and timeout fees +#[allow(clippy::derive_partial_eq_without_eq)] #[derive(Clone, PartialEq, ::prost::Message)] pub struct Fee { /// the packet receive fee @@ -29,6 +30,7 @@ impl ::prost::Name for Fee { } } /// PacketFee contains ICS29 relayer fees, refund address and optional list of permitted relayers +#[allow(clippy::derive_partial_eq_without_eq)] #[derive(Clone, PartialEq, ::prost::Message)] pub struct PacketFee { /// fee encapsulates the recv, ack and timeout fees associated with an IBC packet @@ -52,6 +54,7 @@ impl ::prost::Name for PacketFee { } } /// PacketFees contains a list of type PacketFee +#[allow(clippy::derive_partial_eq_without_eq)] #[derive(Clone, PartialEq, ::prost::Message)] pub struct PacketFees { /// list of packet fees @@ -69,6 +72,7 @@ impl ::prost::Name for PacketFees { } } /// IdentifiedPacketFees contains a list of type PacketFee and associated PacketId +#[allow(clippy::derive_partial_eq_without_eq)] #[derive(Clone, PartialEq, ::prost::Message)] pub struct IdentifiedPacketFees { /// unique packet identifier comprised of the channel ID, port ID and sequence @@ -91,6 +95,7 @@ impl ::prost::Name for IdentifiedPacketFees { } } /// MsgRegisterPayee defines the request type for the RegisterPayee rpc +#[allow(clippy::derive_partial_eq_without_eq)] #[derive(Clone, PartialEq, ::prost::Message)] pub struct MsgRegisterPayee { /// unique port identifier @@ -117,6 +122,7 @@ impl ::prost::Name for MsgRegisterPayee { } } /// MsgRegisterPayeeResponse defines the response type for the RegisterPayee rpc +#[allow(clippy::derive_partial_eq_without_eq)] #[derive(Clone, Copy, PartialEq, ::prost::Message)] pub struct MsgRegisterPayeeResponse {} impl ::prost::Name for MsgRegisterPayeeResponse { @@ -130,6 +136,7 @@ impl ::prost::Name for MsgRegisterPayeeResponse { } } /// MsgRegisterCounterpartyPayee defines the request type for the RegisterCounterpartyPayee rpc +#[allow(clippy::derive_partial_eq_without_eq)] #[derive(Clone, PartialEq, ::prost::Message)] pub struct MsgRegisterCounterpartyPayee { /// unique port identifier @@ -156,6 +163,7 @@ impl ::prost::Name for MsgRegisterCounterpartyPayee { } } /// MsgRegisterCounterpartyPayeeResponse defines the response type for the RegisterCounterpartyPayee rpc +#[allow(clippy::derive_partial_eq_without_eq)] #[derive(Clone, Copy, PartialEq, ::prost::Message)] pub struct MsgRegisterCounterpartyPayeeResponse {} impl ::prost::Name for MsgRegisterCounterpartyPayeeResponse { @@ -171,6 +179,7 @@ impl ::prost::Name for MsgRegisterCounterpartyPayeeResponse { /// MsgPayPacketFee defines the request type for the PayPacketFee rpc /// This Msg can be used to pay for a packet at the next sequence send & should be combined with the Msg that will be /// paid for +#[allow(clippy::derive_partial_eq_without_eq)] #[derive(Clone, PartialEq, ::prost::Message)] pub struct MsgPayPacketFee { /// fee encapsulates the recv, ack and timeout fees associated with an IBC packet @@ -200,6 +209,7 @@ impl ::prost::Name for MsgPayPacketFee { } } /// MsgPayPacketFeeResponse defines the response type for the PayPacketFee rpc +#[allow(clippy::derive_partial_eq_without_eq)] #[derive(Clone, Copy, PartialEq, ::prost::Message)] pub struct MsgPayPacketFeeResponse {} impl ::prost::Name for MsgPayPacketFeeResponse { @@ -214,6 +224,7 @@ impl ::prost::Name for MsgPayPacketFeeResponse { } /// MsgPayPacketFeeAsync defines the request type for the PayPacketFeeAsync rpc /// This Msg can be used to pay for a packet at a specified sequence (instead of the next sequence send) +#[allow(clippy::derive_partial_eq_without_eq)] #[derive(Clone, PartialEq, ::prost::Message)] pub struct MsgPayPacketFeeAsync { /// unique packet identifier comprised of the channel ID, port ID and sequence @@ -236,6 +247,7 @@ impl ::prost::Name for MsgPayPacketFeeAsync { } } /// MsgPayPacketFeeAsyncResponse defines the response type for the PayPacketFeeAsync rpc +#[allow(clippy::derive_partial_eq_without_eq)] #[derive(Clone, Copy, PartialEq, ::prost::Message)] pub struct MsgPayPacketFeeAsyncResponse {} impl ::prost::Name for MsgPayPacketFeeAsyncResponse { @@ -275,8 +287,8 @@ pub mod msg_client { where T: tonic::client::GrpcService, T::Error: Into, - T::ResponseBody: Body + std::marker::Send + 'static, - ::Error: Into + std::marker::Send, + T::ResponseBody: Body + Send + 'static, + ::Error: Into + Send, { pub fn new(inner: T) -> Self { let inner = tonic::client::Grpc::new(inner); @@ -301,7 +313,7 @@ pub mod msg_client { >, , - >>::Error: Into + std::marker::Send + std::marker::Sync, + >>::Error: Into + Send + Sync, { MsgClient::new(InterceptedService::new(inner, interceptor)) } @@ -470,7 +482,7 @@ pub mod msg_server { use tonic::codegen::*; /// Generated trait containing gRPC methods that should be implemented for use with MsgServer. #[async_trait] - pub trait Msg: std::marker::Send + std::marker::Sync + 'static { + pub trait Msg: Send + Sync + 'static { /// RegisterPayee defines a rpc handler method for MsgRegisterPayee /// RegisterPayee is called by the relayer on each channelEnd and allows them to set an optional /// payee to which reverse and timeout relayer packet fees will be paid out. The payee should be registered on @@ -520,14 +532,14 @@ pub mod msg_server { } /// Msg defines the ICS29 Msg service. #[derive(Debug)] - pub struct MsgServer { + pub struct MsgServer { inner: Arc, accept_compression_encodings: EnabledCompressionEncodings, send_compression_encodings: EnabledCompressionEncodings, max_decoding_message_size: Option, max_encoding_message_size: Option, } - impl MsgServer { + impl MsgServer { pub fn new(inner: T) -> Self { Self::from_arc(Arc::new(inner)) } @@ -581,8 +593,8 @@ pub mod msg_server { impl tonic::codegen::Service> for MsgServer where T: Msg, - B: Body + std::marker::Send + 'static, - B::Error: Into + std::marker::Send + 'static, + B: Body + Send + 'static, + B::Error: Into + Send + 'static, { type Response = http::Response; type Error = std::convert::Infallible; @@ -788,7 +800,7 @@ pub mod msg_server { } } } - impl Clone for MsgServer { + impl Clone for MsgServer { fn clone(&self) -> Self { let inner = self.inner.clone(); Self { @@ -800,13 +812,12 @@ pub mod msg_server { } } } - /// Generated gRPC service name - pub const SERVICE_NAME: &str = "ibc.applications.fee.v1.Msg"; - impl tonic::server::NamedService for MsgServer { - const NAME: &'static str = SERVICE_NAME; + impl tonic::server::NamedService for MsgServer { + const NAME: &'static str = "ibc.applications.fee.v1.Msg"; } } /// IncentivizedAcknowledgement is the acknowledgement format to be used by applications wrapped in the fee middleware +#[allow(clippy::derive_partial_eq_without_eq)] #[derive(Clone, PartialEq, ::prost::Message)] pub struct IncentivizedAcknowledgement { /// the underlying app acknowledgement bytes @@ -830,6 +841,7 @@ impl ::prost::Name for IncentivizedAcknowledgement { } } /// GenesisState defines the ICS29 fee middleware genesis state +#[allow(clippy::derive_partial_eq_without_eq)] #[derive(Clone, PartialEq, ::prost::Message)] pub struct GenesisState { /// list of identified packet fees @@ -861,6 +873,7 @@ impl ::prost::Name for GenesisState { } } /// FeeEnabledChannel contains the PortID & ChannelID for a fee enabled channel +#[allow(clippy::derive_partial_eq_without_eq)] #[derive(Clone, PartialEq, ::prost::Message)] pub struct FeeEnabledChannel { /// unique port identifier @@ -881,6 +894,7 @@ impl ::prost::Name for FeeEnabledChannel { } } /// RegisteredPayee contains the relayer address and payee address for a specific channel +#[allow(clippy::derive_partial_eq_without_eq)] #[derive(Clone, PartialEq, ::prost::Message)] pub struct RegisteredPayee { /// unique channel identifier @@ -905,6 +919,7 @@ impl ::prost::Name for RegisteredPayee { } /// RegisteredCounterpartyPayee contains the relayer address and counterparty payee address for a specific channel (used /// for recv fee distribution) +#[allow(clippy::derive_partial_eq_without_eq)] #[derive(Clone, PartialEq, ::prost::Message)] pub struct RegisteredCounterpartyPayee { /// unique channel identifier @@ -928,6 +943,7 @@ impl ::prost::Name for RegisteredCounterpartyPayee { } } /// ForwardRelayerAddress contains the forward relayer address and PacketId used for async acknowledgements +#[allow(clippy::derive_partial_eq_without_eq)] #[derive(Clone, PartialEq, ::prost::Message)] pub struct ForwardRelayerAddress { /// the forward relayer address @@ -950,6 +966,7 @@ impl ::prost::Name for ForwardRelayerAddress { } } /// QueryIncentivizedPacketsRequest defines the request type for the IncentivizedPackets rpc +#[allow(clippy::derive_partial_eq_without_eq)] #[derive(Clone, PartialEq, ::prost::Message)] pub struct QueryIncentivizedPacketsRequest { /// pagination defines an optional pagination for the request. @@ -972,6 +989,7 @@ impl ::prost::Name for QueryIncentivizedPacketsRequest { } } /// QueryIncentivizedPacketsResponse defines the response type for the IncentivizedPackets rpc +#[allow(clippy::derive_partial_eq_without_eq)] #[derive(Clone, PartialEq, ::prost::Message)] pub struct QueryIncentivizedPacketsResponse { /// list of identified fees for incentivized packets @@ -994,6 +1012,7 @@ impl ::prost::Name for QueryIncentivizedPacketsResponse { } } /// QueryIncentivizedPacketRequest defines the request type for the IncentivizedPacket rpc +#[allow(clippy::derive_partial_eq_without_eq)] #[derive(Clone, PartialEq, ::prost::Message)] pub struct QueryIncentivizedPacketRequest { /// unique packet identifier comprised of channel ID, port ID and sequence @@ -1016,6 +1035,7 @@ impl ::prost::Name for QueryIncentivizedPacketRequest { } } /// QueryIncentivizedPacketsResponse defines the response type for the IncentivizedPacket rpc +#[allow(clippy::derive_partial_eq_without_eq)] #[derive(Clone, PartialEq, ::prost::Message)] pub struct QueryIncentivizedPacketResponse { /// the identified fees for the incentivized packet @@ -1034,6 +1054,7 @@ impl ::prost::Name for QueryIncentivizedPacketResponse { } /// QueryIncentivizedPacketsForChannelRequest defines the request type for querying for all incentivized packets /// for a specific channel +#[allow(clippy::derive_partial_eq_without_eq)] #[derive(Clone, PartialEq, ::prost::Message)] pub struct QueryIncentivizedPacketsForChannelRequest { /// pagination defines an optional pagination for the request. @@ -1060,6 +1081,7 @@ impl ::prost::Name for QueryIncentivizedPacketsForChannelRequest { } } /// QueryIncentivizedPacketsResponse defines the response type for the incentivized packets RPC +#[allow(clippy::derive_partial_eq_without_eq)] #[derive(Clone, PartialEq, ::prost::Message)] pub struct QueryIncentivizedPacketsForChannelResponse { /// Map of all incentivized_packets @@ -1082,6 +1104,7 @@ impl ::prost::Name for QueryIncentivizedPacketsForChannelResponse { } } /// QueryTotalRecvFeesRequest defines the request type for the TotalRecvFees rpc +#[allow(clippy::derive_partial_eq_without_eq)] #[derive(Clone, PartialEq, ::prost::Message)] pub struct QueryTotalRecvFeesRequest { /// the packet identifier for the associated fees @@ -1101,6 +1124,7 @@ impl ::prost::Name for QueryTotalRecvFeesRequest { } } /// QueryTotalRecvFeesResponse defines the response type for the TotalRecvFees rpc +#[allow(clippy::derive_partial_eq_without_eq)] #[derive(Clone, PartialEq, ::prost::Message)] pub struct QueryTotalRecvFeesResponse { /// the total packet receive fees @@ -1120,6 +1144,7 @@ impl ::prost::Name for QueryTotalRecvFeesResponse { } } /// QueryTotalAckFeesRequest defines the request type for the TotalAckFees rpc +#[allow(clippy::derive_partial_eq_without_eq)] #[derive(Clone, PartialEq, ::prost::Message)] pub struct QueryTotalAckFeesRequest { /// the packet identifier for the associated fees @@ -1139,6 +1164,7 @@ impl ::prost::Name for QueryTotalAckFeesRequest { } } /// QueryTotalAckFeesResponse defines the response type for the TotalAckFees rpc +#[allow(clippy::derive_partial_eq_without_eq)] #[derive(Clone, PartialEq, ::prost::Message)] pub struct QueryTotalAckFeesResponse { /// the total packet acknowledgement fees @@ -1158,6 +1184,7 @@ impl ::prost::Name for QueryTotalAckFeesResponse { } } /// QueryTotalTimeoutFeesRequest defines the request type for the TotalTimeoutFees rpc +#[allow(clippy::derive_partial_eq_without_eq)] #[derive(Clone, PartialEq, ::prost::Message)] pub struct QueryTotalTimeoutFeesRequest { /// the packet identifier for the associated fees @@ -1177,6 +1204,7 @@ impl ::prost::Name for QueryTotalTimeoutFeesRequest { } } /// QueryTotalTimeoutFeesResponse defines the response type for the TotalTimeoutFees rpc +#[allow(clippy::derive_partial_eq_without_eq)] #[derive(Clone, PartialEq, ::prost::Message)] pub struct QueryTotalTimeoutFeesResponse { /// the total packet timeout fees @@ -1196,6 +1224,7 @@ impl ::prost::Name for QueryTotalTimeoutFeesResponse { } } /// QueryPayeeRequest defines the request type for the Payee rpc +#[allow(clippy::derive_partial_eq_without_eq)] #[derive(Clone, PartialEq, ::prost::Message)] pub struct QueryPayeeRequest { /// unique channel identifier @@ -1216,6 +1245,7 @@ impl ::prost::Name for QueryPayeeRequest { } } /// QueryPayeeResponse defines the response type for the Payee rpc +#[allow(clippy::derive_partial_eq_without_eq)] #[derive(Clone, PartialEq, ::prost::Message)] pub struct QueryPayeeResponse { /// the payee address to which packet fees are paid out @@ -1233,6 +1263,7 @@ impl ::prost::Name for QueryPayeeResponse { } } /// QueryCounterpartyPayeeRequest defines the request type for the CounterpartyPayee rpc +#[allow(clippy::derive_partial_eq_without_eq)] #[derive(Clone, PartialEq, ::prost::Message)] pub struct QueryCounterpartyPayeeRequest { /// unique channel identifier @@ -1253,6 +1284,7 @@ impl ::prost::Name for QueryCounterpartyPayeeRequest { } } /// QueryCounterpartyPayeeResponse defines the response type for the CounterpartyPayee rpc +#[allow(clippy::derive_partial_eq_without_eq)] #[derive(Clone, PartialEq, ::prost::Message)] pub struct QueryCounterpartyPayeeResponse { /// the counterparty payee address used to compensate forward relaying @@ -1270,6 +1302,7 @@ impl ::prost::Name for QueryCounterpartyPayeeResponse { } } /// QueryFeeEnabledChannelsRequest defines the request type for the FeeEnabledChannels rpc +#[allow(clippy::derive_partial_eq_without_eq)] #[derive(Clone, PartialEq, ::prost::Message)] pub struct QueryFeeEnabledChannelsRequest { /// pagination defines an optional pagination for the request. @@ -1292,6 +1325,7 @@ impl ::prost::Name for QueryFeeEnabledChannelsRequest { } } /// QueryFeeEnabledChannelsResponse defines the response type for the FeeEnabledChannels rpc +#[allow(clippy::derive_partial_eq_without_eq)] #[derive(Clone, PartialEq, ::prost::Message)] pub struct QueryFeeEnabledChannelsResponse { /// list of fee enabled channels @@ -1314,6 +1348,7 @@ impl ::prost::Name for QueryFeeEnabledChannelsResponse { } } /// QueryFeeEnabledChannelRequest defines the request type for the FeeEnabledChannel rpc +#[allow(clippy::derive_partial_eq_without_eq)] #[derive(Clone, PartialEq, ::prost::Message)] pub struct QueryFeeEnabledChannelRequest { /// unique port identifier @@ -1334,6 +1369,7 @@ impl ::prost::Name for QueryFeeEnabledChannelRequest { } } /// QueryFeeEnabledChannelResponse defines the response type for the FeeEnabledChannel rpc +#[allow(clippy::derive_partial_eq_without_eq)] #[derive(Clone, Copy, PartialEq, ::prost::Message)] pub struct QueryFeeEnabledChannelResponse { /// boolean flag representing the fee enabled channel status @@ -1377,8 +1413,8 @@ pub mod query_client { where T: tonic::client::GrpcService, T::Error: Into, - T::ResponseBody: Body + std::marker::Send + 'static, - ::Error: Into + std::marker::Send, + T::ResponseBody: Body + Send + 'static, + ::Error: Into + Send, { pub fn new(inner: T) -> Self { let inner = tonic::client::Grpc::new(inner); @@ -1403,7 +1439,7 @@ pub mod query_client { >, , - >>::Error: Into + std::marker::Send + std::marker::Sync, + >>::Error: Into + Send + Sync, { QueryClient::new(InterceptedService::new(inner, interceptor)) } @@ -1739,7 +1775,7 @@ pub mod query_server { use tonic::codegen::*; /// Generated trait containing gRPC methods that should be implemented for use with QueryServer. #[async_trait] - pub trait Query: std::marker::Send + std::marker::Sync + 'static { + pub trait Query: Send + Sync + 'static { /// IncentivizedPackets returns all incentivized packets and their associated fees async fn incentivized_packets( &self, @@ -1823,14 +1859,14 @@ pub mod query_server { } /// Query defines the ICS29 gRPC querier service. #[derive(Debug)] - pub struct QueryServer { + pub struct QueryServer { inner: Arc, accept_compression_encodings: EnabledCompressionEncodings, send_compression_encodings: EnabledCompressionEncodings, max_decoding_message_size: Option, max_encoding_message_size: Option, } - impl QueryServer { + impl QueryServer { pub fn new(inner: T) -> Self { Self::from_arc(Arc::new(inner)) } @@ -1884,8 +1920,8 @@ pub mod query_server { impl tonic::codegen::Service> for QueryServer where T: Query, - B: Body + std::marker::Send + 'static, - B::Error: Into + std::marker::Send + 'static, + B: Body + Send + 'static, + B::Error: Into + Send + 'static, { type Response = http::Response; type Error = std::convert::Infallible; @@ -2377,7 +2413,7 @@ pub mod query_server { } } } - impl Clone for QueryServer { + impl Clone for QueryServer { fn clone(&self) -> Self { let inner = self.inner.clone(); Self { @@ -2389,14 +2425,13 @@ pub mod query_server { } } } - /// Generated gRPC service name - pub const SERVICE_NAME: &str = "ibc.applications.fee.v1.Query"; - impl tonic::server::NamedService for QueryServer { - const NAME: &'static str = SERVICE_NAME; + impl tonic::server::NamedService for QueryServer { + const NAME: &'static str = "ibc.applications.fee.v1.Query"; } } /// Metadata defines the ICS29 channel specific metadata encoded into the channel version bytestring /// See ICS004: +#[allow(clippy::derive_partial_eq_without_eq)] #[derive(Clone, PartialEq, ::prost::Message)] pub struct Metadata { /// fee_version defines the ICS29 fee version diff --git a/src/prost/ibc.applications.interchain_accounts.controller.v1.rs b/src/prost/ibc.applications.interchain_accounts.controller.v1.rs index 2070a8a1..15fcd759 100644 --- a/src/prost/ibc.applications.interchain_accounts.controller.v1.rs +++ b/src/prost/ibc.applications.interchain_accounts.controller.v1.rs @@ -1,6 +1,7 @@ // This file is @generated by prost-build. /// Params defines the set of on-chain interchain accounts parameters. /// The following parameters may be used to disable the controller submodule. +#[allow(clippy::derive_partial_eq_without_eq)] #[derive(Clone, Copy, PartialEq, ::prost::Message)] pub struct Params { /// controller_enabled enables or disables the controller submodule. @@ -18,6 +19,7 @@ impl ::prost::Name for Params { } } /// MsgRegisterInterchainAccount defines the payload for Msg/RegisterAccount +#[allow(clippy::derive_partial_eq_without_eq)] #[derive(Clone, PartialEq, ::prost::Message)] pub struct MsgRegisterInterchainAccount { #[prost(string, tag = "1")] @@ -45,6 +47,7 @@ impl ::prost::Name for MsgRegisterInterchainAccount { } } /// MsgRegisterInterchainAccountResponse defines the response for Msg/RegisterAccount +#[allow(clippy::derive_partial_eq_without_eq)] #[derive(Clone, PartialEq, ::prost::Message)] pub struct MsgRegisterInterchainAccountResponse { #[prost(string, tag = "1")] @@ -65,6 +68,7 @@ impl ::prost::Name for MsgRegisterInterchainAccountResponse { } } /// MsgSendTx defines the payload for Msg/SendTx +#[allow(clippy::derive_partial_eq_without_eq)] #[derive(Clone, PartialEq, ::prost::Message)] pub struct MsgSendTx { #[prost(string, tag = "1")] @@ -91,6 +95,7 @@ impl ::prost::Name for MsgSendTx { } } /// MsgSendTxResponse defines the response for MsgSendTx +#[allow(clippy::derive_partial_eq_without_eq)] #[derive(Clone, Copy, PartialEq, ::prost::Message)] pub struct MsgSendTxResponse { #[prost(uint64, tag = "1")] @@ -107,6 +112,7 @@ impl ::prost::Name for MsgSendTxResponse { } } /// MsgUpdateParams defines the payload for Msg/UpdateParams +#[allow(clippy::derive_partial_eq_without_eq)] #[derive(Clone, PartialEq, ::prost::Message)] pub struct MsgUpdateParams { /// signer address @@ -129,6 +135,7 @@ impl ::prost::Name for MsgUpdateParams { } } /// MsgUpdateParamsResponse defines the response for Msg/UpdateParams +#[allow(clippy::derive_partial_eq_without_eq)] #[derive(Clone, Copy, PartialEq, ::prost::Message)] pub struct MsgUpdateParamsResponse {} impl ::prost::Name for MsgUpdateParamsResponse { @@ -170,8 +177,8 @@ pub mod msg_client { where T: tonic::client::GrpcService, T::Error: Into, - T::ResponseBody: Body + std::marker::Send + 'static, - ::Error: Into + std::marker::Send, + T::ResponseBody: Body + Send + 'static, + ::Error: Into + Send, { pub fn new(inner: T) -> Self { let inner = tonic::client::Grpc::new(inner); @@ -196,7 +203,7 @@ pub mod msg_client { >, , - >>::Error: Into + std::marker::Send + std::marker::Sync, + >>::Error: Into + Send + Sync, { MsgClient::new(InterceptedService::new(inner, interceptor)) } @@ -333,7 +340,7 @@ pub mod msg_server { use tonic::codegen::*; /// Generated trait containing gRPC methods that should be implemented for use with MsgServer. #[async_trait] - pub trait Msg: std::marker::Send + std::marker::Sync + 'static { + pub trait Msg: Send + Sync + 'static { /// RegisterInterchainAccount defines a rpc handler for MsgRegisterInterchainAccount. async fn register_interchain_account( &self, @@ -361,14 +368,14 @@ pub mod msg_server { } /// Msg defines the 27-interchain-accounts/controller Msg service. #[derive(Debug)] - pub struct MsgServer { + pub struct MsgServer { inner: Arc, accept_compression_encodings: EnabledCompressionEncodings, send_compression_encodings: EnabledCompressionEncodings, max_decoding_message_size: Option, max_encoding_message_size: Option, } - impl MsgServer { + impl MsgServer { pub fn new(inner: T) -> Self { Self::from_arc(Arc::new(inner)) } @@ -422,8 +429,8 @@ pub mod msg_server { impl tonic::codegen::Service> for MsgServer where T: Msg, - B: Body + std::marker::Send + 'static, - B::Error: Into + std::marker::Send + 'static, + B: Body + Send + 'static, + B::Error: Into + Send + 'static, { type Response = http::Response; type Error = std::convert::Infallible; @@ -586,7 +593,7 @@ pub mod msg_server { } } } - impl Clone for MsgServer { + impl Clone for MsgServer { fn clone(&self) -> Self { let inner = self.inner.clone(); Self { @@ -598,13 +605,12 @@ pub mod msg_server { } } } - /// Generated gRPC service name - pub const SERVICE_NAME: &str = "ibc.applications.interchain_accounts.controller.v1.Msg"; - impl tonic::server::NamedService for MsgServer { - const NAME: &'static str = SERVICE_NAME; + impl tonic::server::NamedService for MsgServer { + const NAME: &'static str = "ibc.applications.interchain_accounts.controller.v1.Msg"; } } /// QueryInterchainAccountRequest is the request type for the Query/InterchainAccount RPC method. +#[allow(clippy::derive_partial_eq_without_eq)] #[derive(Clone, PartialEq, ::prost::Message)] pub struct QueryInterchainAccountRequest { #[prost(string, tag = "1")] @@ -625,6 +631,7 @@ impl ::prost::Name for QueryInterchainAccountRequest { } } /// QueryInterchainAccountResponse the response type for the Query/InterchainAccount RPC method. +#[allow(clippy::derive_partial_eq_without_eq)] #[derive(Clone, PartialEq, ::prost::Message)] pub struct QueryInterchainAccountResponse { #[prost(string, tag = "1")] @@ -643,6 +650,7 @@ impl ::prost::Name for QueryInterchainAccountResponse { } } /// QueryParamsRequest is the request type for the Query/Params RPC method. +#[allow(clippy::derive_partial_eq_without_eq)] #[derive(Clone, Copy, PartialEq, ::prost::Message)] pub struct QueryParamsRequest {} impl ::prost::Name for QueryParamsRequest { @@ -656,6 +664,7 @@ impl ::prost::Name for QueryParamsRequest { } } /// QueryParamsResponse is the response type for the Query/Params RPC method. +#[allow(clippy::derive_partial_eq_without_eq)] #[derive(Clone, Copy, PartialEq, ::prost::Message)] pub struct QueryParamsResponse { /// params defines the parameters of the module. @@ -699,8 +708,8 @@ pub mod query_client { where T: tonic::client::GrpcService, T::Error: Into, - T::ResponseBody: Body + std::marker::Send + 'static, - ::Error: Into + std::marker::Send, + T::ResponseBody: Body + Send + 'static, + ::Error: Into + Send, { pub fn new(inner: T) -> Self { let inner = tonic::client::Grpc::new(inner); @@ -725,7 +734,7 @@ pub mod query_client { >, , - >>::Error: Into + std::marker::Send + std::marker::Sync, + >>::Error: Into + Send + Sync, { QueryClient::new(InterceptedService::new(inner, interceptor)) } @@ -831,7 +840,7 @@ pub mod query_server { use tonic::codegen::*; /// Generated trait containing gRPC methods that should be implemented for use with QueryServer. #[async_trait] - pub trait Query: std::marker::Send + std::marker::Sync + 'static { + pub trait Query: Send + Sync + 'static { /// InterchainAccount returns the interchain account address for a given owner address on a given connection async fn interchain_account( &self, @@ -851,14 +860,14 @@ pub mod query_server { } /// Query provides defines the gRPC querier service. #[derive(Debug)] - pub struct QueryServer { + pub struct QueryServer { inner: Arc, accept_compression_encodings: EnabledCompressionEncodings, send_compression_encodings: EnabledCompressionEncodings, max_decoding_message_size: Option, max_encoding_message_size: Option, } - impl QueryServer { + impl QueryServer { pub fn new(inner: T) -> Self { Self::from_arc(Arc::new(inner)) } @@ -912,8 +921,8 @@ pub mod query_server { impl tonic::codegen::Service> for QueryServer where T: Query, - B: Body + std::marker::Send + 'static, - B::Error: Into + std::marker::Send + 'static, + B: Body + Send + 'static, + B::Error: Into + Send + 'static, { type Response = http::Response; type Error = std::convert::Infallible; @@ -1032,7 +1041,7 @@ pub mod query_server { } } } - impl Clone for QueryServer { + impl Clone for QueryServer { fn clone(&self) -> Self { let inner = self.inner.clone(); Self { @@ -1044,9 +1053,7 @@ pub mod query_server { } } } - /// Generated gRPC service name - pub const SERVICE_NAME: &str = "ibc.applications.interchain_accounts.controller.v1.Query"; - impl tonic::server::NamedService for QueryServer { - const NAME: &'static str = SERVICE_NAME; + impl tonic::server::NamedService for QueryServer { + const NAME: &'static str = "ibc.applications.interchain_accounts.controller.v1.Query"; } } diff --git a/src/prost/ibc.applications.interchain_accounts.genesis.v1.rs b/src/prost/ibc.applications.interchain_accounts.genesis.v1.rs index 0f2ec42f..3ea8e3a5 100644 --- a/src/prost/ibc.applications.interchain_accounts.genesis.v1.rs +++ b/src/prost/ibc.applications.interchain_accounts.genesis.v1.rs @@ -1,5 +1,6 @@ // This file is @generated by prost-build. /// GenesisState defines the interchain accounts genesis state +#[allow(clippy::derive_partial_eq_without_eq)] #[derive(Clone, PartialEq, ::prost::Message)] pub struct GenesisState { #[prost(message, optional, tag = "1")] @@ -18,6 +19,7 @@ impl ::prost::Name for GenesisState { } } /// ControllerGenesisState defines the interchain accounts controller genesis state +#[allow(clippy::derive_partial_eq_without_eq)] #[derive(Clone, PartialEq, ::prost::Message)] pub struct ControllerGenesisState { #[prost(message, repeated, tag = "1")] @@ -40,6 +42,7 @@ impl ::prost::Name for ControllerGenesisState { } } /// HostGenesisState defines the interchain accounts host genesis state +#[allow(clippy::derive_partial_eq_without_eq)] #[derive(Clone, PartialEq, ::prost::Message)] pub struct HostGenesisState { #[prost(message, repeated, tag = "1")] @@ -63,6 +66,7 @@ impl ::prost::Name for HostGenesisState { } /// ActiveChannel contains a connection ID, port ID and associated active channel ID, as well as a boolean flag to /// indicate if the channel is middleware enabled +#[allow(clippy::derive_partial_eq_without_eq)] #[derive(Clone, PartialEq, ::prost::Message)] pub struct ActiveChannel { #[prost(string, tag = "1")] @@ -85,6 +89,7 @@ impl ::prost::Name for ActiveChannel { } } /// RegisteredInterchainAccount contains a connection ID, port ID and associated interchain account address +#[allow(clippy::derive_partial_eq_without_eq)] #[derive(Clone, PartialEq, ::prost::Message)] pub struct RegisteredInterchainAccount { #[prost(string, tag = "1")] diff --git a/src/prost/ibc.applications.interchain_accounts.host.v1.rs b/src/prost/ibc.applications.interchain_accounts.host.v1.rs index 6bd9e7fd..d8fbf603 100644 --- a/src/prost/ibc.applications.interchain_accounts.host.v1.rs +++ b/src/prost/ibc.applications.interchain_accounts.host.v1.rs @@ -1,6 +1,7 @@ // This file is @generated by prost-build. /// Params defines the set of on-chain interchain accounts parameters. /// The following parameters may be used to disable the host submodule. +#[allow(clippy::derive_partial_eq_without_eq)] #[derive(Clone, PartialEq, ::prost::Message)] pub struct Params { /// host_enabled enables or disables the host submodule. @@ -21,6 +22,7 @@ impl ::prost::Name for Params { } } /// MsgUpdateParams defines the payload for Msg/UpdateParams +#[allow(clippy::derive_partial_eq_without_eq)] #[derive(Clone, PartialEq, ::prost::Message)] pub struct MsgUpdateParams { /// signer address @@ -43,6 +45,7 @@ impl ::prost::Name for MsgUpdateParams { } } /// MsgUpdateParamsResponse defines the response for Msg/UpdateParams +#[allow(clippy::derive_partial_eq_without_eq)] #[derive(Clone, Copy, PartialEq, ::prost::Message)] pub struct MsgUpdateParamsResponse {} impl ::prost::Name for MsgUpdateParamsResponse { @@ -82,8 +85,8 @@ pub mod msg_client { where T: tonic::client::GrpcService, T::Error: Into, - T::ResponseBody: Body + std::marker::Send + 'static, - ::Error: Into + std::marker::Send, + T::ResponseBody: Body + Send + 'static, + ::Error: Into + Send, { pub fn new(inner: T) -> Self { let inner = tonic::client::Grpc::new(inner); @@ -108,7 +111,7 @@ pub mod msg_client { >, , - >>::Error: Into + std::marker::Send + std::marker::Sync, + >>::Error: Into + Send + Sync, { MsgClient::new(InterceptedService::new(inner, interceptor)) } @@ -183,7 +186,7 @@ pub mod msg_server { use tonic::codegen::*; /// Generated trait containing gRPC methods that should be implemented for use with MsgServer. #[async_trait] - pub trait Msg: std::marker::Send + std::marker::Sync + 'static { + pub trait Msg: Send + Sync + 'static { /// UpdateParams defines a rpc handler for MsgUpdateParams. async fn update_params( &self, @@ -195,14 +198,14 @@ pub mod msg_server { } /// Msg defines the 27-interchain-accounts/host Msg service. #[derive(Debug)] - pub struct MsgServer { + pub struct MsgServer { inner: Arc, accept_compression_encodings: EnabledCompressionEncodings, send_compression_encodings: EnabledCompressionEncodings, max_decoding_message_size: Option, max_encoding_message_size: Option, } - impl MsgServer { + impl MsgServer { pub fn new(inner: T) -> Self { Self::from_arc(Arc::new(inner)) } @@ -256,8 +259,8 @@ pub mod msg_server { impl tonic::codegen::Service> for MsgServer where T: Msg, - B: Body + std::marker::Send + 'static, - B::Error: Into + std::marker::Send + 'static, + B: Body + Send + 'static, + B::Error: Into + Send + 'static, { type Response = http::Response; type Error = std::convert::Infallible; @@ -331,7 +334,7 @@ pub mod msg_server { } } } - impl Clone for MsgServer { + impl Clone for MsgServer { fn clone(&self) -> Self { let inner = self.inner.clone(); Self { @@ -343,13 +346,12 @@ pub mod msg_server { } } } - /// Generated gRPC service name - pub const SERVICE_NAME: &str = "ibc.applications.interchain_accounts.host.v1.Msg"; - impl tonic::server::NamedService for MsgServer { - const NAME: &'static str = SERVICE_NAME; + impl tonic::server::NamedService for MsgServer { + const NAME: &'static str = "ibc.applications.interchain_accounts.host.v1.Msg"; } } /// QueryParamsRequest is the request type for the Query/Params RPC method. +#[allow(clippy::derive_partial_eq_without_eq)] #[derive(Clone, Copy, PartialEq, ::prost::Message)] pub struct QueryParamsRequest {} impl ::prost::Name for QueryParamsRequest { @@ -363,6 +365,7 @@ impl ::prost::Name for QueryParamsRequest { } } /// QueryParamsResponse is the response type for the Query/Params RPC method. +#[allow(clippy::derive_partial_eq_without_eq)] #[derive(Clone, PartialEq, ::prost::Message)] pub struct QueryParamsResponse { /// params defines the parameters of the module. @@ -406,8 +409,8 @@ pub mod query_client { where T: tonic::client::GrpcService, T::Error: Into, - T::ResponseBody: Body + std::marker::Send + 'static, - ::Error: Into + std::marker::Send, + T::ResponseBody: Body + Send + 'static, + ::Error: Into + Send, { pub fn new(inner: T) -> Self { let inner = tonic::client::Grpc::new(inner); @@ -432,7 +435,7 @@ pub mod query_client { >, , - >>::Error: Into + std::marker::Send + std::marker::Sync, + >>::Error: Into + Send + Sync, { QueryClient::new(InterceptedService::new(inner, interceptor)) } @@ -507,7 +510,7 @@ pub mod query_server { use tonic::codegen::*; /// Generated trait containing gRPC methods that should be implemented for use with QueryServer. #[async_trait] - pub trait Query: std::marker::Send + std::marker::Sync + 'static { + pub trait Query: Send + Sync + 'static { /// Params queries all parameters of the ICA host submodule. async fn params( &self, @@ -519,14 +522,14 @@ pub mod query_server { } /// Query provides defines the gRPC querier service. #[derive(Debug)] - pub struct QueryServer { + pub struct QueryServer { inner: Arc, accept_compression_encodings: EnabledCompressionEncodings, send_compression_encodings: EnabledCompressionEncodings, max_decoding_message_size: Option, max_encoding_message_size: Option, } - impl QueryServer { + impl QueryServer { pub fn new(inner: T) -> Self { Self::from_arc(Arc::new(inner)) } @@ -580,8 +583,8 @@ pub mod query_server { impl tonic::codegen::Service> for QueryServer where T: Query, - B: Body + std::marker::Send + 'static, - B::Error: Into + std::marker::Send + 'static, + B: Body + Send + 'static, + B::Error: Into + Send + 'static, { type Response = http::Response; type Error = std::convert::Infallible; @@ -655,7 +658,7 @@ pub mod query_server { } } } - impl Clone for QueryServer { + impl Clone for QueryServer { fn clone(&self) -> Self { let inner = self.inner.clone(); Self { @@ -667,9 +670,7 @@ pub mod query_server { } } } - /// Generated gRPC service name - pub const SERVICE_NAME: &str = "ibc.applications.interchain_accounts.host.v1.Query"; - impl tonic::server::NamedService for QueryServer { - const NAME: &'static str = SERVICE_NAME; + impl tonic::server::NamedService for QueryServer { + const NAME: &'static str = "ibc.applications.interchain_accounts.host.v1.Query"; } } diff --git a/src/prost/ibc.applications.interchain_accounts.v1.rs b/src/prost/ibc.applications.interchain_accounts.v1.rs index 706bd34c..6f5ceae0 100644 --- a/src/prost/ibc.applications.interchain_accounts.v1.rs +++ b/src/prost/ibc.applications.interchain_accounts.v1.rs @@ -1,5 +1,6 @@ // This file is @generated by prost-build. /// An InterchainAccount is defined as a BaseAccount & the address of the account owner on the controller chain +#[allow(clippy::derive_partial_eq_without_eq)] #[derive(Clone, PartialEq, ::prost::Message)] pub struct InterchainAccount { #[prost(message, optional, tag = "1")] @@ -20,6 +21,7 @@ impl ::prost::Name for InterchainAccount { } } /// InterchainAccountPacketData is comprised of a raw transaction, type of transaction and optional memo field. +#[allow(clippy::derive_partial_eq_without_eq)] #[derive(Clone, PartialEq, ::prost::Message)] pub struct InterchainAccountPacketData { #[prost(enumeration = "Type", tag = "1")] @@ -40,6 +42,7 @@ impl ::prost::Name for InterchainAccountPacketData { } } /// CosmosTx contains a list of sdk.Msg's. It should be used when sending transactions to an SDK host chain. +#[allow(clippy::derive_partial_eq_without_eq)] #[derive(Clone, PartialEq, ::prost::Message)] pub struct CosmosTx { #[prost(message, repeated, tag = "1")] @@ -87,6 +90,7 @@ impl Type { } /// Metadata defines a set of protocol specific data encoded into the ICS27 channel version bytestring /// See ICS004: +#[allow(clippy::derive_partial_eq_without_eq)] #[derive(Clone, PartialEq, ::prost::Message)] pub struct Metadata { /// version defines the ICS27 protocol version diff --git a/src/prost/ibc.applications.nft_transfer.v1.rs b/src/prost/ibc.applications.nft_transfer.v1.rs index 48c5f4c3..3f29cee3 100644 --- a/src/prost/ibc.applications.nft_transfer.v1.rs +++ b/src/prost/ibc.applications.nft_transfer.v1.rs @@ -1,6 +1,7 @@ // This file is @generated by prost-build. /// ClassTrace contains the base classID for ICS721 non-fungible tokens and the /// source tracing information path. +#[allow(clippy::derive_partial_eq_without_eq)] #[derive(Clone, PartialEq, ::prost::Message)] pub struct ClassTrace { /// path defines the chain of port/channel identifiers used for tracing the @@ -24,6 +25,7 @@ impl ::prost::Name for ClassTrace { /// Params defines the set of IBC nft-transfer parameters. /// NOTE: To prevent a nft from being transferred, set the /// TransfersEnabled parameter to false. +#[allow(clippy::derive_partial_eq_without_eq)] #[derive(Clone, Copy, PartialEq, ::prost::Message)] pub struct Params { /// send_enabled enables or disables all cross-chain nft transfers from this @@ -48,6 +50,7 @@ impl ::prost::Name for Params { /// MsgTransfer defines a msg to transfer non fungible tokens between /// ICS721 enabled chains. See ICS Spec here: /// +#[allow(clippy::derive_partial_eq_without_eq)] #[derive(Clone, PartialEq, ::prost::Message)] pub struct MsgTransfer { /// the port on which the packet will be sent @@ -93,6 +96,7 @@ impl ::prost::Name for MsgTransfer { } } /// MsgTransferResponse defines the Msg/Transfer response type. +#[allow(clippy::derive_partial_eq_without_eq)] #[derive(Clone, Copy, PartialEq, ::prost::Message)] pub struct MsgTransferResponse { /// sequence number of the transfer packet sent @@ -111,6 +115,7 @@ impl ::prost::Name for MsgTransferResponse { } /// MsgUpdateParams is the Msg/UpdateParams request type. /// +#[allow(clippy::derive_partial_eq_without_eq)] #[derive(Clone, PartialEq, ::prost::Message)] pub struct MsgUpdateParams { /// authority is the address that controls the module (defaults to x/gov unless overwritten). @@ -135,6 +140,7 @@ impl ::prost::Name for MsgUpdateParams { /// MsgUpdateParamsResponse defines the response structure for executing a /// MsgUpdateParams message. /// +#[allow(clippy::derive_partial_eq_without_eq)] #[derive(Clone, Copy, PartialEq, ::prost::Message)] pub struct MsgUpdateParamsResponse {} impl ::prost::Name for MsgUpdateParamsResponse { @@ -174,8 +180,8 @@ pub mod msg_client { where T: tonic::client::GrpcService, T::Error: Into, - T::ResponseBody: Body + std::marker::Send + 'static, - ::Error: Into + std::marker::Send, + T::ResponseBody: Body + Send + 'static, + ::Error: Into + Send, { pub fn new(inner: T) -> Self { let inner = tonic::client::Grpc::new(inner); @@ -200,7 +206,7 @@ pub mod msg_client { >, , - >>::Error: Into + std::marker::Send + std::marker::Sync, + >>::Error: Into + Send + Sync, { MsgClient::new(InterceptedService::new(inner, interceptor)) } @@ -305,7 +311,7 @@ pub mod msg_server { use tonic::codegen::*; /// Generated trait containing gRPC methods that should be implemented for use with MsgServer. #[async_trait] - pub trait Msg: std::marker::Send + std::marker::Sync + 'static { + pub trait Msg: Send + Sync + 'static { /// Transfer defines a rpc handler method for MsgTransfer. async fn transfer( &self, @@ -327,14 +333,14 @@ pub mod msg_server { } /// Msg defines the ibc/nft-transfer Msg service. #[derive(Debug)] - pub struct MsgServer { + pub struct MsgServer { inner: Arc, accept_compression_encodings: EnabledCompressionEncodings, send_compression_encodings: EnabledCompressionEncodings, max_decoding_message_size: Option, max_encoding_message_size: Option, } - impl MsgServer { + impl MsgServer { pub fn new(inner: T) -> Self { Self::from_arc(Arc::new(inner)) } @@ -388,8 +394,8 @@ pub mod msg_server { impl tonic::codegen::Service> for MsgServer where T: Msg, - B: Body + std::marker::Send + 'static, - B::Error: Into + std::marker::Send + 'static, + B: Body + Send + 'static, + B::Error: Into + Send + 'static, { type Response = http::Response; type Error = std::convert::Infallible; @@ -506,7 +512,7 @@ pub mod msg_server { } } } - impl Clone for MsgServer { + impl Clone for MsgServer { fn clone(&self) -> Self { let inner = self.inner.clone(); Self { @@ -518,15 +524,14 @@ pub mod msg_server { } } } - /// Generated gRPC service name - pub const SERVICE_NAME: &str = "ibc.applications.nft_transfer.v1.Msg"; - impl tonic::server::NamedService for MsgServer { - const NAME: &'static str = SERVICE_NAME; + impl tonic::server::NamedService for MsgServer { + const NAME: &'static str = "ibc.applications.nft_transfer.v1.Msg"; } } /// NonFungibleTokenPacketData defines a struct for the packet payload /// See NonFungibleTokenPacketData spec: /// +#[allow(clippy::derive_partial_eq_without_eq)] #[derive(Clone, PartialEq, ::prost::Message)] pub struct NonFungibleTokenPacketData { /// the class_id of class to be transferred @@ -569,6 +574,7 @@ impl ::prost::Name for NonFungibleTokenPacketData { } /// QueryClassTraceRequest is the request type for the Query/ClassDenom RPC /// method +#[allow(clippy::derive_partial_eq_without_eq)] #[derive(Clone, PartialEq, ::prost::Message)] pub struct QueryClassTraceRequest { /// hash (in hex format) or classID (full classID with ibc prefix) of the @@ -588,6 +594,7 @@ impl ::prost::Name for QueryClassTraceRequest { } /// QueryClassTraceResponse is the response type for the Query/ClassDenom RPC /// method. +#[allow(clippy::derive_partial_eq_without_eq)] #[derive(Clone, PartialEq, ::prost::Message)] pub struct QueryClassTraceResponse { /// class_trace returns the requested class trace information. @@ -606,6 +613,7 @@ impl ::prost::Name for QueryClassTraceResponse { } /// QueryConnectionsRequest is the request type for the Query/ClassTraces RPC /// method +#[allow(clippy::derive_partial_eq_without_eq)] #[derive(Clone, PartialEq, ::prost::Message)] pub struct QueryClassTracesRequest { /// pagination defines an optional pagination for the request. @@ -626,6 +634,7 @@ impl ::prost::Name for QueryClassTracesRequest { } /// QueryClassTracesResponse is the response type for the Query/ClassTraces RPC /// method. +#[allow(clippy::derive_partial_eq_without_eq)] #[derive(Clone, PartialEq, ::prost::Message)] pub struct QueryClassTracesResponse { /// class_traces returns all class trace information. @@ -649,6 +658,7 @@ impl ::prost::Name for QueryClassTracesResponse { } /// QueryClassHashRequest is the request type for the Query/ClassHash RPC /// method +#[allow(clippy::derive_partial_eq_without_eq)] #[derive(Clone, PartialEq, ::prost::Message)] pub struct QueryClassHashRequest { /// The class trace `([port_id]/[channel_id])+/[class]` @@ -667,6 +677,7 @@ impl ::prost::Name for QueryClassHashRequest { } /// QueryClassHashResponse is the response type for the Query/ClassHash RPC /// method. +#[allow(clippy::derive_partial_eq_without_eq)] #[derive(Clone, PartialEq, ::prost::Message)] pub struct QueryClassHashResponse { /// hash (in hex format) of the denomination trace information. @@ -685,6 +696,7 @@ impl ::prost::Name for QueryClassHashResponse { } /// QueryEscrowAddressRequest is the request type for the EscrowAddress RPC /// method. +#[allow(clippy::derive_partial_eq_without_eq)] #[derive(Clone, PartialEq, ::prost::Message)] pub struct QueryEscrowAddressRequest { /// unique port identifier @@ -706,6 +718,7 @@ impl ::prost::Name for QueryEscrowAddressRequest { } /// QueryEscrowAddressResponse is the response type of the EscrowAddress RPC /// method. +#[allow(clippy::derive_partial_eq_without_eq)] #[derive(Clone, PartialEq, ::prost::Message)] pub struct QueryEscrowAddressResponse { /// the escrow account address @@ -723,6 +736,7 @@ impl ::prost::Name for QueryEscrowAddressResponse { } } /// QueryParamsRequest is request type for the Query/Params RPC method. +#[allow(clippy::derive_partial_eq_without_eq)] #[derive(Clone, Copy, PartialEq, ::prost::Message)] pub struct QueryParamsRequest {} impl ::prost::Name for QueryParamsRequest { @@ -736,6 +750,7 @@ impl ::prost::Name for QueryParamsRequest { } } /// QueryParamsResponse is response type for the Query/Params RPC method. +#[allow(clippy::derive_partial_eq_without_eq)] #[derive(Clone, Copy, PartialEq, ::prost::Message)] pub struct QueryParamsResponse { /// params holds all the parameters of this module. @@ -779,8 +794,8 @@ pub mod query_client { where T: tonic::client::GrpcService, T::Error: Into, - T::ResponseBody: Body + std::marker::Send + 'static, - ::Error: Into + std::marker::Send, + T::ResponseBody: Body + Send + 'static, + ::Error: Into + Send, { pub fn new(inner: T) -> Self { let inner = tonic::client::Grpc::new(inner); @@ -805,7 +820,7 @@ pub mod query_client { >, , - >>::Error: Into + std::marker::Send + std::marker::Sync, + >>::Error: Into + Send + Sync, { QueryClient::new(InterceptedService::new(inner, interceptor)) } @@ -1002,7 +1017,7 @@ pub mod query_server { use tonic::codegen::*; /// Generated trait containing gRPC methods that should be implemented for use with QueryServer. #[async_trait] - pub trait Query: std::marker::Send + std::marker::Sync + 'static { + pub trait Query: Send + Sync + 'static { /// ClassTrace queries a class trace information. async fn class_trace( &self, @@ -1047,14 +1062,14 @@ pub mod query_server { } /// Query provides defines the gRPC querier service. #[derive(Debug)] - pub struct QueryServer { + pub struct QueryServer { inner: Arc, accept_compression_encodings: EnabledCompressionEncodings, send_compression_encodings: EnabledCompressionEncodings, max_decoding_message_size: Option, max_encoding_message_size: Option, } - impl QueryServer { + impl QueryServer { pub fn new(inner: T) -> Self { Self::from_arc(Arc::new(inner)) } @@ -1108,8 +1123,8 @@ pub mod query_server { impl tonic::codegen::Service> for QueryServer where T: Query, - B: Body + std::marker::Send + 'static, - B::Error: Into + std::marker::Send + 'static, + B: Body + Send + 'static, + B::Error: Into + Send + 'static, { type Response = http::Response; type Error = std::convert::Infallible; @@ -1363,7 +1378,7 @@ pub mod query_server { } } } - impl Clone for QueryServer { + impl Clone for QueryServer { fn clone(&self) -> Self { let inner = self.inner.clone(); Self { @@ -1375,13 +1390,12 @@ pub mod query_server { } } } - /// Generated gRPC service name - pub const SERVICE_NAME: &str = "ibc.applications.nft_transfer.v1.Query"; - impl tonic::server::NamedService for QueryServer { - const NAME: &'static str = SERVICE_NAME; + impl tonic::server::NamedService for QueryServer { + const NAME: &'static str = "ibc.applications.nft_transfer.v1.Query"; } } /// GenesisState defines the ibc-nft-transfer genesis state +#[allow(clippy::derive_partial_eq_without_eq)] #[derive(Clone, PartialEq, ::prost::Message)] pub struct GenesisState { #[prost(string, tag = "1")] diff --git a/src/prost/ibc.applications.transfer.v1.rs b/src/prost/ibc.applications.transfer.v1.rs index 825ba3c3..fdc63395 100644 --- a/src/prost/ibc.applications.transfer.v1.rs +++ b/src/prost/ibc.applications.transfer.v1.rs @@ -1,6 +1,7 @@ // This file is @generated by prost-build. /// DenomTrace contains the base denomination for ICS20 fungible tokens and the /// source tracing information path. +#[allow(clippy::derive_partial_eq_without_eq)] #[derive(Clone, PartialEq, ::prost::Message)] pub struct DenomTrace { /// path defines the chain of port/channel identifiers used for tracing the @@ -25,6 +26,7 @@ impl ::prost::Name for DenomTrace { /// NOTE: To prevent a single token from being transferred, set the /// TransfersEnabled parameter to true and then set the bank module's SendEnabled /// parameter for the denomination to false. +#[allow(clippy::derive_partial_eq_without_eq)] #[derive(Clone, Copy, PartialEq, ::prost::Message)] pub struct Params { /// send_enabled enables or disables all cross-chain token transfers from this @@ -49,6 +51,7 @@ impl ::prost::Name for Params { /// MsgTransfer defines a msg to transfer fungible tokens (i.e Coins) between /// ICS20 enabled chains. See ICS Spec here: /// +#[allow(clippy::derive_partial_eq_without_eq)] #[derive(Clone, PartialEq, ::prost::Message)] pub struct MsgTransfer { /// the port on which the packet will be sent @@ -93,6 +96,7 @@ impl ::prost::Name for MsgTransfer { } } /// MsgTransferResponse defines the Msg/Transfer response type. +#[allow(clippy::derive_partial_eq_without_eq)] #[derive(Clone, Copy, PartialEq, ::prost::Message)] pub struct MsgTransferResponse { /// sequence number of the transfer packet sent @@ -110,6 +114,7 @@ impl ::prost::Name for MsgTransferResponse { } } /// MsgUpdateParams is the Msg/UpdateParams request type. +#[allow(clippy::derive_partial_eq_without_eq)] #[derive(Clone, PartialEq, ::prost::Message)] pub struct MsgUpdateParams { /// signer address @@ -133,6 +138,7 @@ impl ::prost::Name for MsgUpdateParams { } /// MsgUpdateParamsResponse defines the response structure for executing a /// MsgUpdateParams message. +#[allow(clippy::derive_partial_eq_without_eq)] #[derive(Clone, Copy, PartialEq, ::prost::Message)] pub struct MsgUpdateParamsResponse {} impl ::prost::Name for MsgUpdateParamsResponse { @@ -172,8 +178,8 @@ pub mod msg_client { where T: tonic::client::GrpcService, T::Error: Into, - T::ResponseBody: Body + std::marker::Send + 'static, - ::Error: Into + std::marker::Send, + T::ResponseBody: Body + Send + 'static, + ::Error: Into + Send, { pub fn new(inner: T) -> Self { let inner = tonic::client::Grpc::new(inner); @@ -198,7 +204,7 @@ pub mod msg_client { >, , - >>::Error: Into + std::marker::Send + std::marker::Sync, + >>::Error: Into + Send + Sync, { MsgClient::new(InterceptedService::new(inner, interceptor)) } @@ -296,7 +302,7 @@ pub mod msg_server { use tonic::codegen::*; /// Generated trait containing gRPC methods that should be implemented for use with MsgServer. #[async_trait] - pub trait Msg: std::marker::Send + std::marker::Sync + 'static { + pub trait Msg: Send + Sync + 'static { /// Transfer defines a rpc handler method for MsgTransfer. async fn transfer( &self, @@ -316,14 +322,14 @@ pub mod msg_server { } /// Msg defines the ibc/transfer Msg service. #[derive(Debug)] - pub struct MsgServer { + pub struct MsgServer { inner: Arc, accept_compression_encodings: EnabledCompressionEncodings, send_compression_encodings: EnabledCompressionEncodings, max_decoding_message_size: Option, max_encoding_message_size: Option, } - impl MsgServer { + impl MsgServer { pub fn new(inner: T) -> Self { Self::from_arc(Arc::new(inner)) } @@ -377,8 +383,8 @@ pub mod msg_server { impl tonic::codegen::Service> for MsgServer where T: Msg, - B: Body + std::marker::Send + 'static, - B::Error: Into + std::marker::Send + 'static, + B: Body + Send + 'static, + B::Error: Into + Send + 'static, { type Response = http::Response; type Error = std::convert::Infallible; @@ -495,7 +501,7 @@ pub mod msg_server { } } } - impl Clone for MsgServer { + impl Clone for MsgServer { fn clone(&self) -> Self { let inner = self.inner.clone(); Self { @@ -507,14 +513,13 @@ pub mod msg_server { } } } - /// Generated gRPC service name - pub const SERVICE_NAME: &str = "ibc.applications.transfer.v1.Msg"; - impl tonic::server::NamedService for MsgServer { - const NAME: &'static str = SERVICE_NAME; + impl tonic::server::NamedService for MsgServer { + const NAME: &'static str = "ibc.applications.transfer.v1.Msg"; } } /// QueryDenomTraceRequest is the request type for the Query/DenomTrace RPC /// method +#[allow(clippy::derive_partial_eq_without_eq)] #[derive(Clone, PartialEq, ::prost::Message)] pub struct QueryDenomTraceRequest { /// hash (in hex format) or denom (full denom with ibc prefix) of the denomination trace information. @@ -533,6 +538,7 @@ impl ::prost::Name for QueryDenomTraceRequest { } /// QueryDenomTraceResponse is the response type for the Query/DenomTrace RPC /// method. +#[allow(clippy::derive_partial_eq_without_eq)] #[derive(Clone, PartialEq, ::prost::Message)] pub struct QueryDenomTraceResponse { /// denom_trace returns the requested denomination trace information. @@ -551,6 +557,7 @@ impl ::prost::Name for QueryDenomTraceResponse { } /// QueryConnectionsRequest is the request type for the Query/DenomTraces RPC /// method +#[allow(clippy::derive_partial_eq_without_eq)] #[derive(Clone, PartialEq, ::prost::Message)] pub struct QueryDenomTracesRequest { /// pagination defines an optional pagination for the request. @@ -571,6 +578,7 @@ impl ::prost::Name for QueryDenomTracesRequest { } /// QueryConnectionsResponse is the response type for the Query/DenomTraces RPC /// method. +#[allow(clippy::derive_partial_eq_without_eq)] #[derive(Clone, PartialEq, ::prost::Message)] pub struct QueryDenomTracesResponse { /// denom_traces returns all denominations trace information. @@ -593,6 +601,7 @@ impl ::prost::Name for QueryDenomTracesResponse { } } /// QueryParamsRequest is the request type for the Query/Params RPC method. +#[allow(clippy::derive_partial_eq_without_eq)] #[derive(Clone, Copy, PartialEq, ::prost::Message)] pub struct QueryParamsRequest {} impl ::prost::Name for QueryParamsRequest { @@ -606,6 +615,7 @@ impl ::prost::Name for QueryParamsRequest { } } /// QueryParamsResponse is the response type for the Query/Params RPC method. +#[allow(clippy::derive_partial_eq_without_eq)] #[derive(Clone, Copy, PartialEq, ::prost::Message)] pub struct QueryParamsResponse { /// params defines the parameters of the module. @@ -624,6 +634,7 @@ impl ::prost::Name for QueryParamsResponse { } /// QueryDenomHashRequest is the request type for the Query/DenomHash RPC /// method +#[allow(clippy::derive_partial_eq_without_eq)] #[derive(Clone, PartialEq, ::prost::Message)] pub struct QueryDenomHashRequest { /// The denomination trace `([port_id]/[channel_id])+/[denom]` @@ -642,6 +653,7 @@ impl ::prost::Name for QueryDenomHashRequest { } /// QueryDenomHashResponse is the response type for the Query/DenomHash RPC /// method. +#[allow(clippy::derive_partial_eq_without_eq)] #[derive(Clone, PartialEq, ::prost::Message)] pub struct QueryDenomHashResponse { /// hash (in hex format) of the denomination trace information. @@ -659,6 +671,7 @@ impl ::prost::Name for QueryDenomHashResponse { } } /// QueryEscrowAddressRequest is the request type for the EscrowAddress RPC method. +#[allow(clippy::derive_partial_eq_without_eq)] #[derive(Clone, PartialEq, ::prost::Message)] pub struct QueryEscrowAddressRequest { /// unique port identifier @@ -679,6 +692,7 @@ impl ::prost::Name for QueryEscrowAddressRequest { } } /// QueryEscrowAddressResponse is the response type of the EscrowAddress RPC method. +#[allow(clippy::derive_partial_eq_without_eq)] #[derive(Clone, PartialEq, ::prost::Message)] pub struct QueryEscrowAddressResponse { /// the escrow account address @@ -696,6 +710,7 @@ impl ::prost::Name for QueryEscrowAddressResponse { } } /// QueryTotalEscrowForDenomRequest is the request type for TotalEscrowForDenom RPC method. +#[allow(clippy::derive_partial_eq_without_eq)] #[derive(Clone, PartialEq, ::prost::Message)] pub struct QueryTotalEscrowForDenomRequest { #[prost(string, tag = "1")] @@ -712,6 +727,7 @@ impl ::prost::Name for QueryTotalEscrowForDenomRequest { } } /// QueryTotalEscrowForDenomResponse is the response type for TotalEscrowForDenom RPC method. +#[allow(clippy::derive_partial_eq_without_eq)] #[derive(Clone, PartialEq, ::prost::Message)] pub struct QueryTotalEscrowForDenomResponse { #[prost(message, optional, tag = "1")] @@ -756,8 +772,8 @@ pub mod query_client { where T: tonic::client::GrpcService, T::Error: Into, - T::ResponseBody: Body + std::marker::Send + 'static, - ::Error: Into + std::marker::Send, + T::ResponseBody: Body + Send + 'static, + ::Error: Into + Send, { pub fn new(inner: T) -> Self { let inner = tonic::client::Grpc::new(inner); @@ -782,7 +798,7 @@ pub mod query_client { >, , - >>::Error: Into + std::marker::Send + std::marker::Sync, + >>::Error: Into + Send + Sync, { QueryClient::new(InterceptedService::new(inner, interceptor)) } @@ -998,7 +1014,7 @@ pub mod query_server { use tonic::codegen::*; /// Generated trait containing gRPC methods that should be implemented for use with QueryServer. #[async_trait] - pub trait Query: std::marker::Send + std::marker::Sync + 'static { + pub trait Query: Send + Sync + 'static { /// DenomTraces queries all denomination traces. async fn denom_traces( &self, @@ -1050,14 +1066,14 @@ pub mod query_server { } /// Query provides defines the gRPC querier service. #[derive(Debug)] - pub struct QueryServer { + pub struct QueryServer { inner: Arc, accept_compression_encodings: EnabledCompressionEncodings, send_compression_encodings: EnabledCompressionEncodings, max_decoding_message_size: Option, max_encoding_message_size: Option, } - impl QueryServer { + impl QueryServer { pub fn new(inner: T) -> Self { Self::from_arc(Arc::new(inner)) } @@ -1111,8 +1127,8 @@ pub mod query_server { impl tonic::codegen::Service> for QueryServer where T: Query, - B: Body + std::marker::Send + 'static, - B::Error: Into + std::marker::Send + 'static, + B: Body + Send + 'static, + B::Error: Into + Send + 'static, { type Response = http::Response; type Error = std::convert::Infallible; @@ -1413,7 +1429,7 @@ pub mod query_server { } } } - impl Clone for QueryServer { + impl Clone for QueryServer { fn clone(&self) -> Self { let inner = self.inner.clone(); Self { @@ -1425,13 +1441,12 @@ pub mod query_server { } } } - /// Generated gRPC service name - pub const SERVICE_NAME: &str = "ibc.applications.transfer.v1.Query"; - impl tonic::server::NamedService for QueryServer { - const NAME: &'static str = SERVICE_NAME; + impl tonic::server::NamedService for QueryServer { + const NAME: &'static str = "ibc.applications.transfer.v1.Query"; } } /// Allocation defines the spend limit for a particular port and channel +#[allow(clippy::derive_partial_eq_without_eq)] #[derive(Clone, PartialEq, ::prost::Message)] pub struct Allocation { /// the port on which the packet will be sent @@ -1465,6 +1480,7 @@ impl ::prost::Name for Allocation { } /// TransferAuthorization allows the grantee to spend up to spend_limit coins from /// the granter's account for ibc transfer on a specific channel +#[allow(clippy::derive_partial_eq_without_eq)] #[derive(Clone, PartialEq, ::prost::Message)] pub struct TransferAuthorization { /// port and channel amounts @@ -1482,6 +1498,7 @@ impl ::prost::Name for TransferAuthorization { } } /// GenesisState defines the ibc-transfer genesis state +#[allow(clippy::derive_partial_eq_without_eq)] #[derive(Clone, PartialEq, ::prost::Message)] pub struct GenesisState { #[prost(string, tag = "1")] diff --git a/src/prost/ibc.applications.transfer.v2.rs b/src/prost/ibc.applications.transfer.v2.rs index 3ccf4e49..a479baef 100644 --- a/src/prost/ibc.applications.transfer.v2.rs +++ b/src/prost/ibc.applications.transfer.v2.rs @@ -2,6 +2,7 @@ /// FungibleTokenPacketData defines a struct for the packet payload /// See FungibleTokenPacketData spec: /// +#[allow(clippy::derive_partial_eq_without_eq)] #[derive(Clone, PartialEq, ::prost::Message)] pub struct FungibleTokenPacketData { /// the token denomination to be transferred diff --git a/src/prost/ibc.core.channel.v1.rs b/src/prost/ibc.core.channel.v1.rs index 54832615..d07421c6 100644 --- a/src/prost/ibc.core.channel.v1.rs +++ b/src/prost/ibc.core.channel.v1.rs @@ -6,6 +6,7 @@ all(feature = "json-schema", feature = "serde"), derive(::schemars::JsonSchema) )] +#[allow(clippy::derive_partial_eq_without_eq)] #[derive(Clone, PartialEq, ::prost::Message)] pub struct Channel { /// current state of the channel end @@ -41,6 +42,7 @@ impl ::prost::Name for Channel { } /// IdentifiedChannel defines a channel with additional port and channel /// identifier fields. +#[allow(clippy::derive_partial_eq_without_eq)] #[derive(Clone, PartialEq, ::prost::Message)] pub struct IdentifiedChannel { /// current state of the channel end @@ -85,6 +87,7 @@ impl ::prost::Name for IdentifiedChannel { all(feature = "json-schema", feature = "serde"), derive(::schemars::JsonSchema) )] +#[allow(clippy::derive_partial_eq_without_eq)] #[derive(Clone, PartialEq, ::prost::Message)] pub struct Counterparty { /// port on the counterparty chain which owns the other end of the channel. @@ -105,6 +108,7 @@ impl ::prost::Name for Counterparty { } } /// Packet defines a type that carries data across different chains through IBC +#[allow(clippy::derive_partial_eq_without_eq)] #[derive(Clone, PartialEq, ::prost::Message)] pub struct Packet { /// number corresponds to the order of sends and receives, where a Packet @@ -148,6 +152,7 @@ impl ::prost::Name for Packet { /// packet commitments, acknowledgements, and receipts. /// Caller is responsible for knowing the context necessary to interpret this /// state as a commitment, acknowledgement, or a receipt. +#[allow(clippy::derive_partial_eq_without_eq)] #[derive(Clone, PartialEq, ::prost::Message)] pub struct PacketState { /// channel port identifier. @@ -176,6 +181,7 @@ impl ::prost::Name for PacketState { /// PacketId is an identifer for a unique Packet /// Source chains refer to packets by source port/channel /// Destination chains refer to packets by destination port/channel +#[allow(clippy::derive_partial_eq_without_eq)] #[derive(Clone, PartialEq, ::prost::Message)] pub struct PacketId { /// channel port identifier @@ -205,6 +211,7 @@ impl ::prost::Name for PacketId { /// The first byte of any message with this format will be the non-ASCII values /// `0xaa` (result) or `0xb2` (error). Implemented as defined by ICS: /// +#[allow(clippy::derive_partial_eq_without_eq)] #[derive(Clone, PartialEq, ::prost::Message)] pub struct Acknowledgement { /// response contains either a result or an error and must be non-empty @@ -214,6 +221,7 @@ pub struct Acknowledgement { /// Nested message and enum types in `Acknowledgement`. pub mod acknowledgement { /// response contains either a result or an error and must be non-empty + #[allow(clippy::derive_partial_eq_without_eq)] #[derive(Clone, PartialEq, ::prost::Oneof)] pub enum Response { #[prost(bytes, tag = "21")] @@ -235,6 +243,7 @@ impl ::prost::Name for Acknowledgement { /// Timeout defines an execution deadline structure for 04-channel handlers. /// This includes packet lifecycle handlers as well as the upgrade handshake handlers. /// A valid Timeout contains either one or both of a timestamp and block height (sequence). +#[allow(clippy::derive_partial_eq_without_eq)] #[derive(Clone, Copy, PartialEq, ::prost::Message)] pub struct Timeout { /// block height after which the packet or upgrade times out @@ -255,6 +264,7 @@ impl ::prost::Name for Timeout { } } /// Params defines the set of IBC channel parameters. +#[allow(clippy::derive_partial_eq_without_eq)] #[derive(Clone, Copy, PartialEq, ::prost::Message)] pub struct Params { /// the relative timeout after which channel upgrades will time out. @@ -358,6 +368,7 @@ impl Order { } } /// GenesisState defines the ibc channel submodule's genesis state. +#[allow(clippy::derive_partial_eq_without_eq)] #[derive(Clone, PartialEq, ::prost::Message)] pub struct GenesisState { #[prost(message, repeated, tag = "1")] @@ -392,6 +403,7 @@ impl ::prost::Name for GenesisState { } /// PacketSequence defines the genesis type necessary to retrieve and store /// next send and receive sequences. +#[allow(clippy::derive_partial_eq_without_eq)] #[derive(Clone, PartialEq, ::prost::Message)] pub struct PacketSequence { #[prost(string, tag = "1")] @@ -416,6 +428,7 @@ impl ::prost::Name for PacketSequence { /// end, the timeout for this upgrade attempt and the next packet sequence /// which allows the counterparty to efficiently know the highest sequence it has received. /// The next sequence send is used for pruning and upgrading from unordered to ordered channels. +#[allow(clippy::derive_partial_eq_without_eq)] #[derive(Clone, PartialEq, ::prost::Message)] pub struct Upgrade { #[prost(message, optional, tag = "1")] @@ -437,6 +450,7 @@ impl ::prost::Name for Upgrade { } /// UpgradeFields are the fields in a channel end which may be changed /// during a channel upgrade. +#[allow(clippy::derive_partial_eq_without_eq)] #[derive(Clone, PartialEq, ::prost::Message)] pub struct UpgradeFields { #[prost(enumeration = "Order", tag = "1")] @@ -459,6 +473,7 @@ impl ::prost::Name for UpgradeFields { /// ErrorReceipt defines a type which encapsulates the upgrade sequence and error associated with the /// upgrade handshake failure. When a channel upgrade handshake is aborted both chains are expected to increment to the /// next sequence. +#[allow(clippy::derive_partial_eq_without_eq)] #[derive(Clone, PartialEq, ::prost::Message)] pub struct ErrorReceipt { /// the channel upgrade sequence @@ -480,6 +495,7 @@ impl ::prost::Name for ErrorReceipt { } /// MsgChannelOpenInit defines an sdk.Msg to initialize a channel handshake. It /// is called by a relayer on Chain A. +#[allow(clippy::derive_partial_eq_without_eq)] #[derive(Clone, PartialEq, ::prost::Message)] pub struct MsgChannelOpenInit { #[prost(string, tag = "1")] @@ -500,6 +516,7 @@ impl ::prost::Name for MsgChannelOpenInit { } } /// MsgChannelOpenInitResponse defines the Msg/ChannelOpenInit response type. +#[allow(clippy::derive_partial_eq_without_eq)] #[derive(Clone, PartialEq, ::prost::Message)] pub struct MsgChannelOpenInitResponse { #[prost(string, tag = "1")] @@ -520,6 +537,7 @@ impl ::prost::Name for MsgChannelOpenInitResponse { /// MsgChannelOpenInit defines a msg sent by a Relayer to try to open a channel /// on Chain B. The version field within the Channel field has been deprecated. Its /// value will be ignored by core IBC. +#[allow(clippy::derive_partial_eq_without_eq)] #[derive(Clone, PartialEq, ::prost::Message)] pub struct MsgChannelOpenTry { #[prost(string, tag = "1")] @@ -551,6 +569,7 @@ impl ::prost::Name for MsgChannelOpenTry { } } /// MsgChannelOpenTryResponse defines the Msg/ChannelOpenTry response type. +#[allow(clippy::derive_partial_eq_without_eq)] #[derive(Clone, PartialEq, ::prost::Message)] pub struct MsgChannelOpenTryResponse { #[prost(string, tag = "1")] @@ -573,6 +592,7 @@ impl ::prost::Name for MsgChannelOpenTryResponse { /// WARNING: a channel upgrade MUST NOT initialize an upgrade for this channel /// in the same block as executing this message otherwise the counterparty will /// be incapable of opening. +#[allow(clippy::derive_partial_eq_without_eq)] #[derive(Clone, PartialEq, ::prost::Message)] pub struct MsgChannelOpenAck { #[prost(string, tag = "1")] @@ -601,6 +621,7 @@ impl ::prost::Name for MsgChannelOpenAck { } } /// MsgChannelOpenAckResponse defines the Msg/ChannelOpenAck response type. +#[allow(clippy::derive_partial_eq_without_eq)] #[derive(Clone, Copy, PartialEq, ::prost::Message)] pub struct MsgChannelOpenAckResponse {} impl ::prost::Name for MsgChannelOpenAckResponse { @@ -615,6 +636,7 @@ impl ::prost::Name for MsgChannelOpenAckResponse { } /// MsgChannelOpenConfirm defines a msg sent by a Relayer to Chain B to /// acknowledge the change of channel state to OPEN on Chain A. +#[allow(clippy::derive_partial_eq_without_eq)] #[derive(Clone, PartialEq, ::prost::Message)] pub struct MsgChannelOpenConfirm { #[prost(string, tag = "1")] @@ -640,6 +662,7 @@ impl ::prost::Name for MsgChannelOpenConfirm { } /// MsgChannelOpenConfirmResponse defines the Msg/ChannelOpenConfirm response /// type. +#[allow(clippy::derive_partial_eq_without_eq)] #[derive(Clone, Copy, PartialEq, ::prost::Message)] pub struct MsgChannelOpenConfirmResponse {} impl ::prost::Name for MsgChannelOpenConfirmResponse { @@ -654,6 +677,7 @@ impl ::prost::Name for MsgChannelOpenConfirmResponse { } /// MsgChannelCloseInit defines a msg sent by a Relayer to Chain A /// to close a channel with Chain B. +#[allow(clippy::derive_partial_eq_without_eq)] #[derive(Clone, PartialEq, ::prost::Message)] pub struct MsgChannelCloseInit { #[prost(string, tag = "1")] @@ -674,6 +698,7 @@ impl ::prost::Name for MsgChannelCloseInit { } } /// MsgChannelCloseInitResponse defines the Msg/ChannelCloseInit response type. +#[allow(clippy::derive_partial_eq_without_eq)] #[derive(Clone, Copy, PartialEq, ::prost::Message)] pub struct MsgChannelCloseInitResponse {} impl ::prost::Name for MsgChannelCloseInitResponse { @@ -688,6 +713,7 @@ impl ::prost::Name for MsgChannelCloseInitResponse { } /// MsgChannelCloseConfirm defines a msg sent by a Relayer to Chain B /// to acknowledge the change of channel state to CLOSED on Chain A. +#[allow(clippy::derive_partial_eq_without_eq)] #[derive(Clone, PartialEq, ::prost::Message)] pub struct MsgChannelCloseConfirm { #[prost(string, tag = "1")] @@ -715,6 +741,7 @@ impl ::prost::Name for MsgChannelCloseConfirm { } /// MsgChannelCloseConfirmResponse defines the Msg/ChannelCloseConfirm response /// type. +#[allow(clippy::derive_partial_eq_without_eq)] #[derive(Clone, Copy, PartialEq, ::prost::Message)] pub struct MsgChannelCloseConfirmResponse {} impl ::prost::Name for MsgChannelCloseConfirmResponse { @@ -728,6 +755,7 @@ impl ::prost::Name for MsgChannelCloseConfirmResponse { } } /// MsgRecvPacket receives incoming IBC packet +#[allow(clippy::derive_partial_eq_without_eq)] #[derive(Clone, PartialEq, ::prost::Message)] pub struct MsgRecvPacket { #[prost(message, optional, tag = "1")] @@ -750,6 +778,7 @@ impl ::prost::Name for MsgRecvPacket { } } /// MsgRecvPacketResponse defines the Msg/RecvPacket response type. +#[allow(clippy::derive_partial_eq_without_eq)] #[derive(Clone, Copy, PartialEq, ::prost::Message)] pub struct MsgRecvPacketResponse { #[prost(enumeration = "ResponseResultType", tag = "1")] @@ -766,6 +795,7 @@ impl ::prost::Name for MsgRecvPacketResponse { } } /// MsgTimeout receives timed-out packet +#[allow(clippy::derive_partial_eq_without_eq)] #[derive(Clone, PartialEq, ::prost::Message)] pub struct MsgTimeout { #[prost(message, optional, tag = "1")] @@ -790,6 +820,7 @@ impl ::prost::Name for MsgTimeout { } } /// MsgTimeoutResponse defines the Msg/Timeout response type. +#[allow(clippy::derive_partial_eq_without_eq)] #[derive(Clone, Copy, PartialEq, ::prost::Message)] pub struct MsgTimeoutResponse { #[prost(enumeration = "ResponseResultType", tag = "1")] @@ -806,6 +837,7 @@ impl ::prost::Name for MsgTimeoutResponse { } } /// MsgTimeoutOnClose timed-out packet upon counterparty channel closure. +#[allow(clippy::derive_partial_eq_without_eq)] #[derive(Clone, PartialEq, ::prost::Message)] pub struct MsgTimeoutOnClose { #[prost(message, optional, tag = "1")] @@ -834,6 +866,7 @@ impl ::prost::Name for MsgTimeoutOnClose { } } /// MsgTimeoutOnCloseResponse defines the Msg/TimeoutOnClose response type. +#[allow(clippy::derive_partial_eq_without_eq)] #[derive(Clone, Copy, PartialEq, ::prost::Message)] pub struct MsgTimeoutOnCloseResponse { #[prost(enumeration = "ResponseResultType", tag = "1")] @@ -850,6 +883,7 @@ impl ::prost::Name for MsgTimeoutOnCloseResponse { } } /// MsgAcknowledgement receives incoming IBC acknowledgement +#[allow(clippy::derive_partial_eq_without_eq)] #[derive(Clone, PartialEq, ::prost::Message)] pub struct MsgAcknowledgement { #[prost(message, optional, tag = "1")] @@ -874,6 +908,7 @@ impl ::prost::Name for MsgAcknowledgement { } } /// MsgAcknowledgementResponse defines the Msg/Acknowledgement response type. +#[allow(clippy::derive_partial_eq_without_eq)] #[derive(Clone, Copy, PartialEq, ::prost::Message)] pub struct MsgAcknowledgementResponse { #[prost(enumeration = "ResponseResultType", tag = "1")] @@ -892,6 +927,7 @@ impl ::prost::Name for MsgAcknowledgementResponse { /// MsgChannelUpgradeInit defines the request type for the ChannelUpgradeInit rpc /// WARNING: Initializing a channel upgrade in the same block as opening the channel /// may result in the counterparty being incapable of opening. +#[allow(clippy::derive_partial_eq_without_eq)] #[derive(Clone, PartialEq, ::prost::Message)] pub struct MsgChannelUpgradeInit { #[prost(string, tag = "1")] @@ -914,6 +950,7 @@ impl ::prost::Name for MsgChannelUpgradeInit { } } /// MsgChannelUpgradeInitResponse defines the MsgChannelUpgradeInit response type +#[allow(clippy::derive_partial_eq_without_eq)] #[derive(Clone, PartialEq, ::prost::Message)] pub struct MsgChannelUpgradeInitResponse { #[prost(message, optional, tag = "1")] @@ -932,6 +969,7 @@ impl ::prost::Name for MsgChannelUpgradeInitResponse { } } /// MsgChannelUpgradeTry defines the request type for the ChannelUpgradeTry rpc +#[allow(clippy::derive_partial_eq_without_eq)] #[derive(Clone, PartialEq, ::prost::Message)] pub struct MsgChannelUpgradeTry { #[prost(string, tag = "1")] @@ -966,6 +1004,7 @@ impl ::prost::Name for MsgChannelUpgradeTry { } } /// MsgChannelUpgradeTryResponse defines the MsgChannelUpgradeTry response type +#[allow(clippy::derive_partial_eq_without_eq)] #[derive(Clone, PartialEq, ::prost::Message)] pub struct MsgChannelUpgradeTryResponse { #[prost(message, optional, tag = "1")] @@ -986,6 +1025,7 @@ impl ::prost::Name for MsgChannelUpgradeTryResponse { } } /// MsgChannelUpgradeAck defines the request type for the ChannelUpgradeAck rpc +#[allow(clippy::derive_partial_eq_without_eq)] #[derive(Clone, PartialEq, ::prost::Message)] pub struct MsgChannelUpgradeAck { #[prost(string, tag = "1")] @@ -1014,6 +1054,7 @@ impl ::prost::Name for MsgChannelUpgradeAck { } } /// MsgChannelUpgradeAckResponse defines MsgChannelUpgradeAck response type +#[allow(clippy::derive_partial_eq_without_eq)] #[derive(Clone, Copy, PartialEq, ::prost::Message)] pub struct MsgChannelUpgradeAckResponse { #[prost(enumeration = "ResponseResultType", tag = "1")] @@ -1030,6 +1071,7 @@ impl ::prost::Name for MsgChannelUpgradeAckResponse { } } /// MsgChannelUpgradeConfirm defines the request type for the ChannelUpgradeConfirm rpc +#[allow(clippy::derive_partial_eq_without_eq)] #[derive(Clone, PartialEq, ::prost::Message)] pub struct MsgChannelUpgradeConfirm { #[prost(string, tag = "1")] @@ -1060,6 +1102,7 @@ impl ::prost::Name for MsgChannelUpgradeConfirm { } } /// MsgChannelUpgradeConfirmResponse defines MsgChannelUpgradeConfirm response type +#[allow(clippy::derive_partial_eq_without_eq)] #[derive(Clone, Copy, PartialEq, ::prost::Message)] pub struct MsgChannelUpgradeConfirmResponse { #[prost(enumeration = "ResponseResultType", tag = "1")] @@ -1076,6 +1119,7 @@ impl ::prost::Name for MsgChannelUpgradeConfirmResponse { } } /// MsgChannelUpgradeOpen defines the request type for the ChannelUpgradeOpen rpc +#[allow(clippy::derive_partial_eq_without_eq)] #[derive(Clone, PartialEq, ::prost::Message)] pub struct MsgChannelUpgradeOpen { #[prost(string, tag = "1")] @@ -1104,6 +1148,7 @@ impl ::prost::Name for MsgChannelUpgradeOpen { } } /// MsgChannelUpgradeOpenResponse defines the MsgChannelUpgradeOpen response type +#[allow(clippy::derive_partial_eq_without_eq)] #[derive(Clone, Copy, PartialEq, ::prost::Message)] pub struct MsgChannelUpgradeOpenResponse {} impl ::prost::Name for MsgChannelUpgradeOpenResponse { @@ -1117,6 +1162,7 @@ impl ::prost::Name for MsgChannelUpgradeOpenResponse { } } /// MsgChannelUpgradeTimeout defines the request type for the ChannelUpgradeTimeout rpc +#[allow(clippy::derive_partial_eq_without_eq)] #[derive(Clone, PartialEq, ::prost::Message)] pub struct MsgChannelUpgradeTimeout { #[prost(string, tag = "1")] @@ -1143,6 +1189,7 @@ impl ::prost::Name for MsgChannelUpgradeTimeout { } } /// MsgChannelUpgradeTimeoutRepsonse defines the MsgChannelUpgradeTimeout response type +#[allow(clippy::derive_partial_eq_without_eq)] #[derive(Clone, Copy, PartialEq, ::prost::Message)] pub struct MsgChannelUpgradeTimeoutResponse {} impl ::prost::Name for MsgChannelUpgradeTimeoutResponse { @@ -1156,6 +1203,7 @@ impl ::prost::Name for MsgChannelUpgradeTimeoutResponse { } } /// MsgChannelUpgradeCancel defines the request type for the ChannelUpgradeCancel rpc +#[allow(clippy::derive_partial_eq_without_eq)] #[derive(Clone, PartialEq, ::prost::Message)] pub struct MsgChannelUpgradeCancel { #[prost(string, tag = "1")] @@ -1182,6 +1230,7 @@ impl ::prost::Name for MsgChannelUpgradeCancel { } } /// MsgChannelUpgradeCancelResponse defines the MsgChannelUpgradeCancel response type +#[allow(clippy::derive_partial_eq_without_eq)] #[derive(Clone, Copy, PartialEq, ::prost::Message)] pub struct MsgChannelUpgradeCancelResponse {} impl ::prost::Name for MsgChannelUpgradeCancelResponse { @@ -1195,6 +1244,7 @@ impl ::prost::Name for MsgChannelUpgradeCancelResponse { } } /// MsgUpdateParams is the MsgUpdateParams request type. +#[allow(clippy::derive_partial_eq_without_eq)] #[derive(Clone, PartialEq, ::prost::Message)] pub struct MsgUpdateParams { /// authority is the address that controls the module (defaults to x/gov unless overwritten). @@ -1217,6 +1267,7 @@ impl ::prost::Name for MsgUpdateParams { } } /// MsgUpdateParamsResponse defines the MsgUpdateParams response type. +#[allow(clippy::derive_partial_eq_without_eq)] #[derive(Clone, Copy, PartialEq, ::prost::Message)] pub struct MsgUpdateParamsResponse {} impl ::prost::Name for MsgUpdateParamsResponse { @@ -1230,6 +1281,7 @@ impl ::prost::Name for MsgUpdateParamsResponse { } } /// MsgPruneAcknowledgements defines the request type for the PruneAcknowledgements rpc. +#[allow(clippy::derive_partial_eq_without_eq)] #[derive(Clone, PartialEq, ::prost::Message)] pub struct MsgPruneAcknowledgements { #[prost(string, tag = "1")] @@ -1252,6 +1304,7 @@ impl ::prost::Name for MsgPruneAcknowledgements { } } /// MsgPruneAcknowledgementsResponse defines the response type for the PruneAcknowledgements rpc. +#[allow(clippy::derive_partial_eq_without_eq)] #[derive(Clone, Copy, PartialEq, ::prost::Message)] pub struct MsgPruneAcknowledgementsResponse { /// Number of sequences pruned (includes both packet acknowledgements and packet receipts where appropriate). @@ -1335,8 +1388,8 @@ pub mod msg_client { where T: tonic::client::GrpcService, T::Error: Into, - T::ResponseBody: Body + std::marker::Send + 'static, - ::Error: Into + std::marker::Send, + T::ResponseBody: Body + Send + 'static, + ::Error: Into + Send, { pub fn new(inner: T) -> Self { let inner = tonic::client::Grpc::new(inner); @@ -1361,7 +1414,7 @@ pub mod msg_client { >, , - >>::Error: Into + std::marker::Send + std::marker::Sync, + >>::Error: Into + Send + Sync, { MsgClient::new(InterceptedService::new(inner, interceptor)) } @@ -1918,7 +1971,7 @@ pub mod msg_server { use tonic::codegen::*; /// Generated trait containing gRPC methods that should be implemented for use with MsgServer. #[async_trait] - pub trait Msg: std::marker::Send + std::marker::Sync + 'static { + pub trait Msg: Send + Sync + 'static { /// ChannelOpenInit defines a rpc handler method for MsgChannelOpenInit. async fn channel_open_init( &self, @@ -2075,14 +2128,14 @@ pub mod msg_server { } /// Msg defines the ibc/channel Msg service. #[derive(Debug)] - pub struct MsgServer { + pub struct MsgServer { inner: Arc, accept_compression_encodings: EnabledCompressionEncodings, send_compression_encodings: EnabledCompressionEncodings, max_decoding_message_size: Option, max_encoding_message_size: Option, } - impl MsgServer { + impl MsgServer { pub fn new(inner: T) -> Self { Self::from_arc(Arc::new(inner)) } @@ -2136,8 +2189,8 @@ pub mod msg_server { impl tonic::codegen::Service> for MsgServer where T: Msg, - B: Body + std::marker::Send + 'static, - B::Error: Into + std::marker::Send + 'static, + B: Body + Send + 'static, + B::Error: Into + Send + 'static, { type Response = http::Response; type Error = std::convert::Infallible; @@ -3001,7 +3054,7 @@ pub mod msg_server { } } } - impl Clone for MsgServer { + impl Clone for MsgServer { fn clone(&self) -> Self { let inner = self.inner.clone(); Self { @@ -3013,13 +3066,12 @@ pub mod msg_server { } } } - /// Generated gRPC service name - pub const SERVICE_NAME: &str = "ibc.core.channel.v1.Msg"; - impl tonic::server::NamedService for MsgServer { - const NAME: &'static str = SERVICE_NAME; + impl tonic::server::NamedService for MsgServer { + const NAME: &'static str = "ibc.core.channel.v1.Msg"; } } /// QueryChannelRequest is the request type for the Query/Channel RPC method +#[allow(clippy::derive_partial_eq_without_eq)] #[derive(Clone, PartialEq, ::prost::Message)] pub struct QueryChannelRequest { /// port unique identifier @@ -3042,6 +3094,7 @@ impl ::prost::Name for QueryChannelRequest { /// QueryChannelResponse is the response type for the Query/Channel RPC method. /// Besides the Channel end, it includes a proof and the height from which the /// proof was retrieved. +#[allow(clippy::derive_partial_eq_without_eq)] #[derive(Clone, PartialEq, ::prost::Message)] pub struct QueryChannelResponse { /// channel associated with the request identifiers @@ -3065,6 +3118,7 @@ impl ::prost::Name for QueryChannelResponse { } } /// QueryChannelsRequest is the request type for the Query/Channels RPC method +#[allow(clippy::derive_partial_eq_without_eq)] #[derive(Clone, PartialEq, ::prost::Message)] pub struct QueryChannelsRequest { /// pagination request @@ -3084,6 +3138,7 @@ impl ::prost::Name for QueryChannelsRequest { } } /// QueryChannelsResponse is the response type for the Query/Channels RPC method. +#[allow(clippy::derive_partial_eq_without_eq)] #[derive(Clone, PartialEq, ::prost::Message)] pub struct QueryChannelsResponse { /// list of stored channels of the chain. @@ -3110,6 +3165,7 @@ impl ::prost::Name for QueryChannelsResponse { } /// QueryConnectionChannelsRequest is the request type for the /// Query/QueryConnectionChannels RPC method +#[allow(clippy::derive_partial_eq_without_eq)] #[derive(Clone, PartialEq, ::prost::Message)] pub struct QueryConnectionChannelsRequest { /// connection unique identifier @@ -3133,6 +3189,7 @@ impl ::prost::Name for QueryConnectionChannelsRequest { } /// QueryConnectionChannelsResponse is the Response type for the /// Query/QueryConnectionChannels RPC method +#[allow(clippy::derive_partial_eq_without_eq)] #[derive(Clone, PartialEq, ::prost::Message)] pub struct QueryConnectionChannelsResponse { /// list of channels associated with a connection. @@ -3159,6 +3216,7 @@ impl ::prost::Name for QueryConnectionChannelsResponse { } /// QueryChannelClientStateRequest is the request type for the Query/ClientState /// RPC method +#[allow(clippy::derive_partial_eq_without_eq)] #[derive(Clone, PartialEq, ::prost::Message)] pub struct QueryChannelClientStateRequest { /// port unique identifier @@ -3180,6 +3238,7 @@ impl ::prost::Name for QueryChannelClientStateRequest { } /// QueryChannelClientStateResponse is the Response type for the /// Query/QueryChannelClientState RPC method +#[allow(clippy::derive_partial_eq_without_eq)] #[derive(Clone, PartialEq, ::prost::Message)] pub struct QueryChannelClientStateResponse { /// client state associated with the channel @@ -3206,6 +3265,7 @@ impl ::prost::Name for QueryChannelClientStateResponse { } /// QueryChannelConsensusStateRequest is the request type for the /// Query/ConsensusState RPC method +#[allow(clippy::derive_partial_eq_without_eq)] #[derive(Clone, PartialEq, ::prost::Message)] pub struct QueryChannelConsensusStateRequest { /// port unique identifier @@ -3233,6 +3293,7 @@ impl ::prost::Name for QueryChannelConsensusStateRequest { } /// QueryChannelClientStateResponse is the Response type for the /// Query/QueryChannelClientState RPC method +#[allow(clippy::derive_partial_eq_without_eq)] #[derive(Clone, PartialEq, ::prost::Message)] pub struct QueryChannelConsensusStateResponse { /// consensus state associated with the channel @@ -3262,6 +3323,7 @@ impl ::prost::Name for QueryChannelConsensusStateResponse { } /// QueryPacketCommitmentRequest is the request type for the /// Query/PacketCommitment RPC method +#[allow(clippy::derive_partial_eq_without_eq)] #[derive(Clone, PartialEq, ::prost::Message)] pub struct QueryPacketCommitmentRequest { /// port unique identifier @@ -3287,6 +3349,7 @@ impl ::prost::Name for QueryPacketCommitmentRequest { /// QueryPacketCommitmentResponse defines the client query response for a packet /// which also includes a proof and the height from which the proof was /// retrieved +#[allow(clippy::derive_partial_eq_without_eq)] #[derive(Clone, PartialEq, ::prost::Message)] pub struct QueryPacketCommitmentResponse { /// packet associated with the request fields @@ -3311,6 +3374,7 @@ impl ::prost::Name for QueryPacketCommitmentResponse { } /// QueryPacketCommitmentsRequest is the request type for the /// Query/QueryPacketCommitments RPC method +#[allow(clippy::derive_partial_eq_without_eq)] #[derive(Clone, PartialEq, ::prost::Message)] pub struct QueryPacketCommitmentsRequest { /// port unique identifier @@ -3337,6 +3401,7 @@ impl ::prost::Name for QueryPacketCommitmentsRequest { } /// QueryPacketCommitmentsResponse is the request type for the /// Query/QueryPacketCommitments RPC method +#[allow(clippy::derive_partial_eq_without_eq)] #[derive(Clone, PartialEq, ::prost::Message)] pub struct QueryPacketCommitmentsResponse { #[prost(message, repeated, tag = "1")] @@ -3362,6 +3427,7 @@ impl ::prost::Name for QueryPacketCommitmentsResponse { } /// QueryPacketReceiptRequest is the request type for the /// Query/PacketReceipt RPC method +#[allow(clippy::derive_partial_eq_without_eq)] #[derive(Clone, PartialEq, ::prost::Message)] pub struct QueryPacketReceiptRequest { /// port unique identifier @@ -3387,6 +3453,7 @@ impl ::prost::Name for QueryPacketReceiptRequest { /// QueryPacketReceiptResponse defines the client query response for a packet /// receipt which also includes a proof, and the height from which the proof was /// retrieved +#[allow(clippy::derive_partial_eq_without_eq)] #[derive(Clone, PartialEq, ::prost::Message)] pub struct QueryPacketReceiptResponse { /// success flag for if receipt exists @@ -3411,6 +3478,7 @@ impl ::prost::Name for QueryPacketReceiptResponse { } /// QueryPacketAcknowledgementRequest is the request type for the /// Query/PacketAcknowledgement RPC method +#[allow(clippy::derive_partial_eq_without_eq)] #[derive(Clone, PartialEq, ::prost::Message)] pub struct QueryPacketAcknowledgementRequest { /// port unique identifier @@ -3436,6 +3504,7 @@ impl ::prost::Name for QueryPacketAcknowledgementRequest { /// QueryPacketAcknowledgementResponse defines the client query response for a /// packet which also includes a proof and the height from which the /// proof was retrieved +#[allow(clippy::derive_partial_eq_without_eq)] #[derive(Clone, PartialEq, ::prost::Message)] pub struct QueryPacketAcknowledgementResponse { /// packet associated with the request fields @@ -3460,6 +3529,7 @@ impl ::prost::Name for QueryPacketAcknowledgementResponse { } /// QueryPacketAcknowledgementsRequest is the request type for the /// Query/QueryPacketCommitments RPC method +#[allow(clippy::derive_partial_eq_without_eq)] #[derive(Clone, PartialEq, ::prost::Message)] pub struct QueryPacketAcknowledgementsRequest { /// port unique identifier @@ -3489,6 +3559,7 @@ impl ::prost::Name for QueryPacketAcknowledgementsRequest { } /// QueryPacketAcknowledgemetsResponse is the request type for the /// Query/QueryPacketAcknowledgements RPC method +#[allow(clippy::derive_partial_eq_without_eq)] #[derive(Clone, PartialEq, ::prost::Message)] pub struct QueryPacketAcknowledgementsResponse { #[prost(message, repeated, tag = "1")] @@ -3514,6 +3585,7 @@ impl ::prost::Name for QueryPacketAcknowledgementsResponse { } /// QueryUnreceivedPacketsRequest is the request type for the /// Query/UnreceivedPackets RPC method +#[allow(clippy::derive_partial_eq_without_eq)] #[derive(Clone, PartialEq, ::prost::Message)] pub struct QueryUnreceivedPacketsRequest { /// port unique identifier @@ -3538,6 +3610,7 @@ impl ::prost::Name for QueryUnreceivedPacketsRequest { } /// QueryUnreceivedPacketsResponse is the response type for the /// Query/UnreceivedPacketCommitments RPC method +#[allow(clippy::derive_partial_eq_without_eq)] #[derive(Clone, PartialEq, ::prost::Message)] pub struct QueryUnreceivedPacketsResponse { /// list of unreceived packet sequences @@ -3559,6 +3632,7 @@ impl ::prost::Name for QueryUnreceivedPacketsResponse { } /// QueryUnreceivedAcks is the request type for the /// Query/UnreceivedAcks RPC method +#[allow(clippy::derive_partial_eq_without_eq)] #[derive(Clone, PartialEq, ::prost::Message)] pub struct QueryUnreceivedAcksRequest { /// port unique identifier @@ -3583,6 +3657,7 @@ impl ::prost::Name for QueryUnreceivedAcksRequest { } /// QueryUnreceivedAcksResponse is the response type for the /// Query/UnreceivedAcks RPC method +#[allow(clippy::derive_partial_eq_without_eq)] #[derive(Clone, PartialEq, ::prost::Message)] pub struct QueryUnreceivedAcksResponse { /// list of unreceived acknowledgement sequences @@ -3604,6 +3679,7 @@ impl ::prost::Name for QueryUnreceivedAcksResponse { } /// QueryNextSequenceReceiveRequest is the request type for the /// Query/QueryNextSequenceReceiveRequest RPC method +#[allow(clippy::derive_partial_eq_without_eq)] #[derive(Clone, PartialEq, ::prost::Message)] pub struct QueryNextSequenceReceiveRequest { /// port unique identifier @@ -3625,6 +3701,7 @@ impl ::prost::Name for QueryNextSequenceReceiveRequest { } /// QuerySequenceResponse is the response type for the /// Query/QueryNextSequenceReceiveResponse RPC method +#[allow(clippy::derive_partial_eq_without_eq)] #[derive(Clone, PartialEq, ::prost::Message)] pub struct QueryNextSequenceReceiveResponse { /// next sequence receive number @@ -3649,6 +3726,7 @@ impl ::prost::Name for QueryNextSequenceReceiveResponse { } /// QueryNextSequenceSendRequest is the request type for the /// Query/QueryNextSequenceSend RPC method +#[allow(clippy::derive_partial_eq_without_eq)] #[derive(Clone, PartialEq, ::prost::Message)] pub struct QueryNextSequenceSendRequest { /// port unique identifier @@ -3670,6 +3748,7 @@ impl ::prost::Name for QueryNextSequenceSendRequest { } /// QueryNextSequenceSendResponse is the request type for the /// Query/QueryNextSequenceSend RPC method +#[allow(clippy::derive_partial_eq_without_eq)] #[derive(Clone, PartialEq, ::prost::Message)] pub struct QueryNextSequenceSendResponse { /// next sequence send number @@ -3693,6 +3772,7 @@ impl ::prost::Name for QueryNextSequenceSendResponse { } } /// QueryUpgradeErrorRequest is the request type for the Query/QueryUpgradeError RPC method +#[allow(clippy::derive_partial_eq_without_eq)] #[derive(Clone, PartialEq, ::prost::Message)] pub struct QueryUpgradeErrorRequest { #[prost(string, tag = "1")] @@ -3711,6 +3791,7 @@ impl ::prost::Name for QueryUpgradeErrorRequest { } } /// QueryUpgradeErrorResponse is the response type for the Query/QueryUpgradeError RPC method +#[allow(clippy::derive_partial_eq_without_eq)] #[derive(Clone, PartialEq, ::prost::Message)] pub struct QueryUpgradeErrorResponse { #[prost(message, optional, tag = "1")] @@ -3733,6 +3814,7 @@ impl ::prost::Name for QueryUpgradeErrorResponse { } } /// QueryUpgradeRequest is the request type for the QueryUpgradeRequest RPC method +#[allow(clippy::derive_partial_eq_without_eq)] #[derive(Clone, PartialEq, ::prost::Message)] pub struct QueryUpgradeRequest { #[prost(string, tag = "1")] @@ -3751,6 +3833,7 @@ impl ::prost::Name for QueryUpgradeRequest { } } /// QueryUpgradeResponse is the response type for the QueryUpgradeResponse RPC method +#[allow(clippy::derive_partial_eq_without_eq)] #[derive(Clone, PartialEq, ::prost::Message)] pub struct QueryUpgradeResponse { #[prost(message, optional, tag = "1")] @@ -3773,6 +3856,7 @@ impl ::prost::Name for QueryUpgradeResponse { } } /// QueryChannelParamsRequest is the request type for the Query/ChannelParams RPC method. +#[allow(clippy::derive_partial_eq_without_eq)] #[derive(Clone, Copy, PartialEq, ::prost::Message)] pub struct QueryChannelParamsRequest {} impl ::prost::Name for QueryChannelParamsRequest { @@ -3786,6 +3870,7 @@ impl ::prost::Name for QueryChannelParamsRequest { } } /// QueryChannelParamsResponse is the response type for the Query/ChannelParams RPC method. +#[allow(clippy::derive_partial_eq_without_eq)] #[derive(Clone, Copy, PartialEq, ::prost::Message)] pub struct QueryChannelParamsResponse { /// params defines the parameters of the module. @@ -3829,8 +3914,8 @@ pub mod query_client { where T: tonic::client::GrpcService, T::Error: Into, - T::ResponseBody: Body + std::marker::Send + 'static, - ::Error: Into + std::marker::Send, + T::ResponseBody: Body + Send + 'static, + ::Error: Into + Send, { pub fn new(inner: T) -> Self { let inner = tonic::client::Grpc::new(inner); @@ -3855,7 +3940,7 @@ pub mod query_client { >, , - >>::Error: Into + std::marker::Send + std::marker::Sync, + >>::Error: Into + Send + Sync, { QueryClient::new(InterceptedService::new(inner, interceptor)) } @@ -4372,7 +4457,7 @@ pub mod query_server { use tonic::codegen::*; /// Generated trait containing gRPC methods that should be implemented for use with QueryServer. #[async_trait] - pub trait Query: std::marker::Send + std::marker::Sync + 'static { + pub trait Query: Send + Sync + 'static { /// Channel queries an IBC Channel. async fn channel( &self, @@ -4520,14 +4605,14 @@ pub mod query_server { } /// Query provides defines the gRPC querier service #[derive(Debug)] - pub struct QueryServer { + pub struct QueryServer { inner: Arc, accept_compression_encodings: EnabledCompressionEncodings, send_compression_encodings: EnabledCompressionEncodings, max_decoding_message_size: Option, max_encoding_message_size: Option, } - impl QueryServer { + impl QueryServer { pub fn new(inner: T) -> Self { Self::from_arc(Arc::new(inner)) } @@ -4581,8 +4666,8 @@ pub mod query_server { impl tonic::codegen::Service> for QueryServer where T: Query, - B: Body + std::marker::Send + 'static, - B::Error: Into + std::marker::Send + 'static, + B: Body + Send + 'static, + B::Error: Into + Send + 'static, { type Response = http::Response; type Error = std::convert::Infallible; @@ -5393,7 +5478,7 @@ pub mod query_server { } } } - impl Clone for QueryServer { + impl Clone for QueryServer { fn clone(&self) -> Self { let inner = self.inner.clone(); Self { @@ -5405,9 +5490,7 @@ pub mod query_server { } } } - /// Generated gRPC service name - pub const SERVICE_NAME: &str = "ibc.core.channel.v1.Query"; - impl tonic::server::NamedService for QueryServer { - const NAME: &'static str = SERVICE_NAME; + impl tonic::server::NamedService for QueryServer { + const NAME: &'static str = "ibc.core.channel.v1.Query"; } } diff --git a/src/prost/ibc.core.client.v1.rs b/src/prost/ibc.core.client.v1.rs index 39aefa87..e2981362 100644 --- a/src/prost/ibc.core.client.v1.rs +++ b/src/prost/ibc.core.client.v1.rs @@ -1,6 +1,7 @@ // This file is @generated by prost-build. /// IdentifiedClientState defines a client state with an additional client /// identifier field. +#[allow(clippy::derive_partial_eq_without_eq)] #[derive(Clone, PartialEq, ::prost::Message)] pub struct IdentifiedClientState { /// client identifier @@ -22,6 +23,7 @@ impl ::prost::Name for IdentifiedClientState { } /// ConsensusStateWithHeight defines a consensus state with an additional height /// field. +#[allow(clippy::derive_partial_eq_without_eq)] #[derive(Clone, PartialEq, ::prost::Message)] pub struct ConsensusStateWithHeight { /// consensus state height @@ -45,6 +47,7 @@ impl ::prost::Name for ConsensusStateWithHeight { } /// ClientConsensusStates defines all the stored consensus states for a given /// client. +#[allow(clippy::derive_partial_eq_without_eq)] #[derive(Clone, PartialEq, ::prost::Message)] pub struct ClientConsensusStates { /// client identifier @@ -79,6 +82,7 @@ impl ::prost::Name for ClientConsensusStates { all(feature = "json-schema", feature = "serde"), derive(::schemars::JsonSchema) )] +#[allow(clippy::derive_partial_eq_without_eq)] #[derive(Clone, Copy, PartialEq, ::prost::Message)] pub struct Height { /// the revision that the client is currently on @@ -99,6 +103,7 @@ impl ::prost::Name for Height { } } /// Params defines the set of IBC light client parameters. +#[allow(clippy::derive_partial_eq_without_eq)] #[derive(Clone, PartialEq, ::prost::Message)] pub struct Params { /// allowed_clients defines the list of allowed client state types which can be created @@ -123,6 +128,7 @@ impl ::prost::Name for Params { /// chain parameters (with exception to latest height, frozen height, and chain-id). /// /// Deprecated: Please use MsgRecoverClient in favour of this message type. +#[allow(clippy::derive_partial_eq_without_eq)] #[derive(Clone, PartialEq, ::prost::Message)] pub struct ClientUpdateProposal { /// the title of the update proposal @@ -153,6 +159,7 @@ impl ::prost::Name for ClientUpdateProposal { /// upgrade. /// /// Deprecated: Please use MsgIBCSoftwareUpgrade in favour of this message type. +#[allow(clippy::derive_partial_eq_without_eq)] #[derive(Clone, PartialEq, ::prost::Message)] pub struct UpgradeProposal { #[prost(string, tag = "1")] @@ -185,6 +192,7 @@ impl ::prost::Name for UpgradeProposal { } } /// GenesisState defines the ibc client submodule's genesis state. +#[allow(clippy::derive_partial_eq_without_eq)] #[derive(Clone, PartialEq, ::prost::Message)] pub struct GenesisState { /// client states with their corresponding identifiers @@ -219,6 +227,7 @@ impl ::prost::Name for GenesisState { } /// GenesisMetadata defines the genesis type for metadata that clients may return /// with ExportMetadata +#[allow(clippy::derive_partial_eq_without_eq)] #[derive(Clone, PartialEq, ::prost::Message)] pub struct GenesisMetadata { /// store key of metadata without clientID-prefix @@ -240,6 +249,7 @@ impl ::prost::Name for GenesisMetadata { } /// IdentifiedGenesisMetadata has the client metadata with the corresponding /// client id. +#[allow(clippy::derive_partial_eq_without_eq)] #[derive(Clone, PartialEq, ::prost::Message)] pub struct IdentifiedGenesisMetadata { #[prost(string, tag = "1")] @@ -258,6 +268,7 @@ impl ::prost::Name for IdentifiedGenesisMetadata { } } /// MsgCreateClient defines a message to create an IBC client +#[allow(clippy::derive_partial_eq_without_eq)] #[derive(Clone, PartialEq, ::prost::Message)] pub struct MsgCreateClient { /// light client state @@ -284,6 +295,7 @@ impl ::prost::Name for MsgCreateClient { } } /// MsgCreateClientResponse defines the Msg/CreateClient response type. +#[allow(clippy::derive_partial_eq_without_eq)] #[derive(Clone, Copy, PartialEq, ::prost::Message)] pub struct MsgCreateClientResponse {} impl ::prost::Name for MsgCreateClientResponse { @@ -298,6 +310,7 @@ impl ::prost::Name for MsgCreateClientResponse { } /// MsgUpdateClient defines an sdk.Msg to update a IBC client state using /// the given client message. +#[allow(clippy::derive_partial_eq_without_eq)] #[derive(Clone, PartialEq, ::prost::Message)] pub struct MsgUpdateClient { /// client unique identifier @@ -323,6 +336,7 @@ impl ::prost::Name for MsgUpdateClient { } } /// MsgUpdateClientResponse defines the Msg/UpdateClient response type. +#[allow(clippy::derive_partial_eq_without_eq)] #[derive(Clone, Copy, PartialEq, ::prost::Message)] pub struct MsgUpdateClientResponse {} impl ::prost::Name for MsgUpdateClientResponse { @@ -337,6 +351,7 @@ impl ::prost::Name for MsgUpdateClientResponse { } /// MsgUpgradeClient defines an sdk.Msg to upgrade an IBC client to a new client /// state +#[allow(clippy::derive_partial_eq_without_eq)] #[derive(Clone, PartialEq, ::prost::Message)] pub struct MsgUpgradeClient { /// client unique identifier @@ -372,6 +387,7 @@ impl ::prost::Name for MsgUpgradeClient { } } /// MsgUpgradeClientResponse defines the Msg/UpgradeClient response type. +#[allow(clippy::derive_partial_eq_without_eq)] #[derive(Clone, Copy, PartialEq, ::prost::Message)] pub struct MsgUpgradeClientResponse {} impl ::prost::Name for MsgUpgradeClientResponse { @@ -387,6 +403,7 @@ impl ::prost::Name for MsgUpgradeClientResponse { /// MsgSubmitMisbehaviour defines an sdk.Msg type that submits Evidence for /// light client misbehaviour. /// This message has been deprecated. Use MsgUpdateClient instead. +#[allow(clippy::derive_partial_eq_without_eq)] #[derive(Clone, PartialEq, ::prost::Message)] pub struct MsgSubmitMisbehaviour { /// client unique identifier @@ -411,6 +428,7 @@ impl ::prost::Name for MsgSubmitMisbehaviour { } /// MsgSubmitMisbehaviourResponse defines the Msg/SubmitMisbehaviour response /// type. +#[allow(clippy::derive_partial_eq_without_eq)] #[derive(Clone, Copy, PartialEq, ::prost::Message)] pub struct MsgSubmitMisbehaviourResponse {} impl ::prost::Name for MsgSubmitMisbehaviourResponse { @@ -424,6 +442,7 @@ impl ::prost::Name for MsgSubmitMisbehaviourResponse { } } /// MsgRecoverClient defines the message used to recover a frozen or expired client. +#[allow(clippy::derive_partial_eq_without_eq)] #[derive(Clone, PartialEq, ::prost::Message)] pub struct MsgRecoverClient { /// the client identifier for the client to be updated if the proposal passes @@ -448,6 +467,7 @@ impl ::prost::Name for MsgRecoverClient { } } /// MsgRecoverClientResponse defines the Msg/RecoverClient response type. +#[allow(clippy::derive_partial_eq_without_eq)] #[derive(Clone, Copy, PartialEq, ::prost::Message)] pub struct MsgRecoverClientResponse {} impl ::prost::Name for MsgRecoverClientResponse { @@ -461,6 +481,7 @@ impl ::prost::Name for MsgRecoverClientResponse { } } /// MsgIBCSoftwareUpgrade defines the message used to schedule an upgrade of an IBC client using a v1 governance proposal +#[allow(clippy::derive_partial_eq_without_eq)] #[derive(Clone, PartialEq, ::prost::Message)] pub struct MsgIbcSoftwareUpgrade { #[prost(message, optional, tag = "1")] @@ -494,6 +515,7 @@ impl ::prost::Name for MsgIbcSoftwareUpgrade { } } /// MsgIBCSoftwareUpgradeResponse defines the Msg/IBCSoftwareUpgrade response type. +#[allow(clippy::derive_partial_eq_without_eq)] #[derive(Clone, Copy, PartialEq, ::prost::Message)] pub struct MsgIbcSoftwareUpgradeResponse {} impl ::prost::Name for MsgIbcSoftwareUpgradeResponse { @@ -507,6 +529,7 @@ impl ::prost::Name for MsgIbcSoftwareUpgradeResponse { } } /// MsgUpdateParams defines the sdk.Msg type to update the client parameters. +#[allow(clippy::derive_partial_eq_without_eq)] #[derive(Clone, PartialEq, ::prost::Message)] pub struct MsgUpdateParams { /// signer address @@ -529,6 +552,7 @@ impl ::prost::Name for MsgUpdateParams { } } /// MsgUpdateParamsResponse defines the MsgUpdateParams response type. +#[allow(clippy::derive_partial_eq_without_eq)] #[derive(Clone, Copy, PartialEq, ::prost::Message)] pub struct MsgUpdateParamsResponse {} impl ::prost::Name for MsgUpdateParamsResponse { @@ -568,8 +592,8 @@ pub mod msg_client { where T: tonic::client::GrpcService, T::Error: Into, - T::ResponseBody: Body + std::marker::Send + 'static, - ::Error: Into + std::marker::Send, + T::ResponseBody: Body + Send + 'static, + ::Error: Into + Send, { pub fn new(inner: T) -> Self { let inner = tonic::client::Grpc::new(inner); @@ -594,7 +618,7 @@ pub mod msg_client { >, , - >>::Error: Into + std::marker::Send + std::marker::Sync, + >>::Error: Into + Send + Sync, { MsgClient::new(InterceptedService::new(inner, interceptor)) } @@ -820,7 +844,7 @@ pub mod msg_server { use tonic::codegen::*; /// Generated trait containing gRPC methods that should be implemented for use with MsgServer. #[async_trait] - pub trait Msg: std::marker::Send + std::marker::Sync + 'static { + pub trait Msg: Send + Sync + 'static { /// CreateClient defines a rpc handler method for MsgCreateClient. async fn create_client( &self, @@ -880,14 +904,14 @@ pub mod msg_server { } /// Msg defines the ibc/client Msg service. #[derive(Debug)] - pub struct MsgServer { + pub struct MsgServer { inner: Arc, accept_compression_encodings: EnabledCompressionEncodings, send_compression_encodings: EnabledCompressionEncodings, max_decoding_message_size: Option, max_encoding_message_size: Option, } - impl MsgServer { + impl MsgServer { pub fn new(inner: T) -> Self { Self::from_arc(Arc::new(inner)) } @@ -941,8 +965,8 @@ pub mod msg_server { impl tonic::codegen::Service> for MsgServer where T: Msg, - B: Body + std::marker::Send + 'static, - B::Error: Into + std::marker::Send + 'static, + B: Body + Send + 'static, + B::Error: Into + Send + 'static, { type Response = http::Response; type Error = std::convert::Infallible; @@ -1278,7 +1302,7 @@ pub mod msg_server { } } } - impl Clone for MsgServer { + impl Clone for MsgServer { fn clone(&self) -> Self { let inner = self.inner.clone(); Self { @@ -1290,14 +1314,13 @@ pub mod msg_server { } } } - /// Generated gRPC service name - pub const SERVICE_NAME: &str = "ibc.core.client.v1.Msg"; - impl tonic::server::NamedService for MsgServer { - const NAME: &'static str = SERVICE_NAME; + impl tonic::server::NamedService for MsgServer { + const NAME: &'static str = "ibc.core.client.v1.Msg"; } } /// QueryClientStateRequest is the request type for the Query/ClientState RPC /// method +#[allow(clippy::derive_partial_eq_without_eq)] #[derive(Clone, PartialEq, ::prost::Message)] pub struct QueryClientStateRequest { /// client state unique identifier @@ -1317,6 +1340,7 @@ impl ::prost::Name for QueryClientStateRequest { /// QueryClientStateResponse is the response type for the Query/ClientState RPC /// method. Besides the client state, it includes a proof and the height from /// which the proof was retrieved. +#[allow(clippy::derive_partial_eq_without_eq)] #[derive(Clone, PartialEq, ::prost::Message)] pub struct QueryClientStateResponse { /// client state associated with the request identifier @@ -1341,6 +1365,7 @@ impl ::prost::Name for QueryClientStateResponse { } /// QueryClientStatesRequest is the request type for the Query/ClientStates RPC /// method +#[allow(clippy::derive_partial_eq_without_eq)] #[derive(Clone, PartialEq, ::prost::Message)] pub struct QueryClientStatesRequest { /// pagination request @@ -1361,6 +1386,7 @@ impl ::prost::Name for QueryClientStatesRequest { } /// QueryClientStatesResponse is the response type for the Query/ClientStates RPC /// method. +#[allow(clippy::derive_partial_eq_without_eq)] #[derive(Clone, PartialEq, ::prost::Message)] pub struct QueryClientStatesResponse { /// list of stored ClientStates of the chain. @@ -1385,6 +1411,7 @@ impl ::prost::Name for QueryClientStatesResponse { /// QueryConsensusStateRequest is the request type for the Query/ConsensusState /// RPC method. Besides the consensus state, it includes a proof and the height /// from which the proof was retrieved. +#[allow(clippy::derive_partial_eq_without_eq)] #[derive(Clone, PartialEq, ::prost::Message)] pub struct QueryConsensusStateRequest { /// client identifier @@ -1413,6 +1440,7 @@ impl ::prost::Name for QueryConsensusStateRequest { } /// QueryConsensusStateResponse is the response type for the Query/ConsensusState /// RPC method +#[allow(clippy::derive_partial_eq_without_eq)] #[derive(Clone, PartialEq, ::prost::Message)] pub struct QueryConsensusStateResponse { /// consensus state associated with the client identifier at the given height @@ -1439,6 +1467,7 @@ impl ::prost::Name for QueryConsensusStateResponse { } /// QueryConsensusStatesRequest is the request type for the Query/ConsensusStates /// RPC method. +#[allow(clippy::derive_partial_eq_without_eq)] #[derive(Clone, PartialEq, ::prost::Message)] pub struct QueryConsensusStatesRequest { /// client identifier @@ -1462,6 +1491,7 @@ impl ::prost::Name for QueryConsensusStatesRequest { } /// QueryConsensusStatesResponse is the response type for the /// Query/ConsensusStates RPC method +#[allow(clippy::derive_partial_eq_without_eq)] #[derive(Clone, PartialEq, ::prost::Message)] pub struct QueryConsensusStatesResponse { /// consensus states associated with the identifier @@ -1485,6 +1515,7 @@ impl ::prost::Name for QueryConsensusStatesResponse { } /// QueryConsensusStateHeightsRequest is the request type for Query/ConsensusStateHeights /// RPC method. +#[allow(clippy::derive_partial_eq_without_eq)] #[derive(Clone, PartialEq, ::prost::Message)] pub struct QueryConsensusStateHeightsRequest { /// client identifier @@ -1508,6 +1539,7 @@ impl ::prost::Name for QueryConsensusStateHeightsRequest { } /// QueryConsensusStateHeightsResponse is the response type for the /// Query/ConsensusStateHeights RPC method +#[allow(clippy::derive_partial_eq_without_eq)] #[derive(Clone, PartialEq, ::prost::Message)] pub struct QueryConsensusStateHeightsResponse { /// consensus state heights @@ -1531,6 +1563,7 @@ impl ::prost::Name for QueryConsensusStateHeightsResponse { } /// QueryClientStatusRequest is the request type for the Query/ClientStatus RPC /// method +#[allow(clippy::derive_partial_eq_without_eq)] #[derive(Clone, PartialEq, ::prost::Message)] pub struct QueryClientStatusRequest { /// client unique identifier @@ -1549,6 +1582,7 @@ impl ::prost::Name for QueryClientStatusRequest { } /// QueryClientStatusResponse is the response type for the Query/ClientStatus RPC /// method. It returns the current status of the IBC client. +#[allow(clippy::derive_partial_eq_without_eq)] #[derive(Clone, PartialEq, ::prost::Message)] pub struct QueryClientStatusResponse { #[prost(string, tag = "1")] @@ -1566,6 +1600,7 @@ impl ::prost::Name for QueryClientStatusResponse { } /// QueryClientParamsRequest is the request type for the Query/ClientParams RPC /// method. +#[allow(clippy::derive_partial_eq_without_eq)] #[derive(Clone, Copy, PartialEq, ::prost::Message)] pub struct QueryClientParamsRequest {} impl ::prost::Name for QueryClientParamsRequest { @@ -1580,6 +1615,7 @@ impl ::prost::Name for QueryClientParamsRequest { } /// QueryClientParamsResponse is the response type for the Query/ClientParams RPC /// method. +#[allow(clippy::derive_partial_eq_without_eq)] #[derive(Clone, PartialEq, ::prost::Message)] pub struct QueryClientParamsResponse { /// params defines the parameters of the module. @@ -1598,6 +1634,7 @@ impl ::prost::Name for QueryClientParamsResponse { } /// QueryUpgradedClientStateRequest is the request type for the /// Query/UpgradedClientState RPC method +#[allow(clippy::derive_partial_eq_without_eq)] #[derive(Clone, Copy, PartialEq, ::prost::Message)] pub struct QueryUpgradedClientStateRequest {} impl ::prost::Name for QueryUpgradedClientStateRequest { @@ -1612,6 +1649,7 @@ impl ::prost::Name for QueryUpgradedClientStateRequest { } /// QueryUpgradedClientStateResponse is the response type for the /// Query/UpgradedClientState RPC method. +#[allow(clippy::derive_partial_eq_without_eq)] #[derive(Clone, PartialEq, ::prost::Message)] pub struct QueryUpgradedClientStateResponse { /// client state associated with the request identifier @@ -1632,6 +1670,7 @@ impl ::prost::Name for QueryUpgradedClientStateResponse { } /// QueryUpgradedConsensusStateRequest is the request type for the /// Query/UpgradedConsensusState RPC method +#[allow(clippy::derive_partial_eq_without_eq)] #[derive(Clone, Copy, PartialEq, ::prost::Message)] pub struct QueryUpgradedConsensusStateRequest {} impl ::prost::Name for QueryUpgradedConsensusStateRequest { @@ -1646,6 +1685,7 @@ impl ::prost::Name for QueryUpgradedConsensusStateRequest { } /// QueryUpgradedConsensusStateResponse is the response type for the /// Query/UpgradedConsensusState RPC method. +#[allow(clippy::derive_partial_eq_without_eq)] #[derive(Clone, PartialEq, ::prost::Message)] pub struct QueryUpgradedConsensusStateResponse { /// Consensus state associated with the request identifier @@ -1691,8 +1731,8 @@ pub mod query_client { where T: tonic::client::GrpcService, T::Error: Into, - T::ResponseBody: Body + std::marker::Send + 'static, - ::Error: Into + std::marker::Send, + T::ResponseBody: Body + Send + 'static, + ::Error: Into + Send, { pub fn new(inner: T) -> Self { let inner = tonic::client::Grpc::new(inner); @@ -1717,7 +1757,7 @@ pub mod query_client { >, , - >>::Error: Into + std::marker::Send + std::marker::Sync, + >>::Error: Into + Send + Sync, { QueryClient::new(InterceptedService::new(inner, interceptor)) } @@ -2003,7 +2043,7 @@ pub mod query_server { use tonic::codegen::*; /// Generated trait containing gRPC methods that should be implemented for use with QueryServer. #[async_trait] - pub trait Query: std::marker::Send + std::marker::Sync + 'static { + pub trait Query: Send + Sync + 'static { /// ClientState queries an IBC light client. async fn client_state( &self, @@ -2081,14 +2121,14 @@ pub mod query_server { } /// Query provides defines the gRPC querier service #[derive(Debug)] - pub struct QueryServer { + pub struct QueryServer { inner: Arc, accept_compression_encodings: EnabledCompressionEncodings, send_compression_encodings: EnabledCompressionEncodings, max_decoding_message_size: Option, max_encoding_message_size: Option, } - impl QueryServer { + impl QueryServer { pub fn new(inner: T) -> Self { Self::from_arc(Arc::new(inner)) } @@ -2142,8 +2182,8 @@ pub mod query_server { impl tonic::codegen::Service> for QueryServer where T: Query, - B: Body + std::marker::Send + 'static, - B::Error: Into + std::marker::Send + 'static, + B: Body + Send + 'static, + B::Error: Into + Send + 'static, { type Response = http::Response; type Error = std::convert::Infallible; @@ -2588,7 +2628,7 @@ pub mod query_server { } } } - impl Clone for QueryServer { + impl Clone for QueryServer { fn clone(&self) -> Self { let inner = self.inner.clone(); Self { @@ -2600,9 +2640,7 @@ pub mod query_server { } } } - /// Generated gRPC service name - pub const SERVICE_NAME: &str = "ibc.core.client.v1.Query"; - impl tonic::server::NamedService for QueryServer { - const NAME: &'static str = SERVICE_NAME; + impl tonic::server::NamedService for QueryServer { + const NAME: &'static str = "ibc.core.client.v1.Query"; } } diff --git a/src/prost/ibc.core.commitment.v1.rs b/src/prost/ibc.core.commitment.v1.rs index aabc55b3..73e01a47 100644 --- a/src/prost/ibc.core.commitment.v1.rs +++ b/src/prost/ibc.core.commitment.v1.rs @@ -5,6 +5,7 @@ all(feature = "json-schema", feature = "serde"), derive(::schemars::JsonSchema) )] +#[allow(clippy::derive_partial_eq_without_eq)] #[derive(Clone, PartialEq, ::prost::Message)] pub struct MerkleRoot { #[prost(bytes = "vec", tag = "1")] @@ -31,6 +32,7 @@ impl ::prost::Name for MerkleRoot { all(feature = "json-schema", feature = "serde"), derive(::schemars::JsonSchema) )] +#[allow(clippy::derive_partial_eq_without_eq)] #[derive(Clone, PartialEq, ::prost::Message)] pub struct MerklePrefix { #[prost(bytes = "vec", tag = "1")] @@ -53,6 +55,7 @@ impl ::prost::Name for MerklePrefix { /// MerklePath is the path used to verify commitment proofs, which can be an /// arbitrary structured object (defined by a commitment type). /// MerklePath is represented from root-to-leaf +#[allow(clippy::derive_partial_eq_without_eq)] #[derive(Clone, PartialEq, ::prost::Message)] pub struct MerklePath { #[prost(string, repeated, tag = "1")] @@ -73,6 +76,7 @@ impl ::prost::Name for MerklePath { /// elements, verifiable in conjunction with a known commitment root. Proofs /// should be succinct. /// MerkleProofs are ordered from leaf-to-root +#[allow(clippy::derive_partial_eq_without_eq)] #[derive(Clone, PartialEq, ::prost::Message)] pub struct MerkleProof { #[prost(message, repeated, tag = "1")] diff --git a/src/prost/ibc.core.connection.v1.rs b/src/prost/ibc.core.connection.v1.rs index 0203d806..15752344 100644 --- a/src/prost/ibc.core.connection.v1.rs +++ b/src/prost/ibc.core.connection.v1.rs @@ -7,6 +7,7 @@ all(feature = "json-schema", feature = "serde"), derive(::schemars::JsonSchema) )] +#[allow(clippy::derive_partial_eq_without_eq)] #[derive(Clone, PartialEq, ::prost::Message)] pub struct ConnectionEnd { /// client associated with this connection. @@ -40,6 +41,7 @@ impl ::prost::Name for ConnectionEnd { } /// IdentifiedConnection defines a connection with additional connection /// identifier field. +#[allow(clippy::derive_partial_eq_without_eq)] #[derive(Clone, PartialEq, ::prost::Message)] pub struct IdentifiedConnection { /// connection identifier. @@ -77,6 +79,7 @@ impl ::prost::Name for IdentifiedConnection { all(feature = "json-schema", feature = "serde"), derive(::schemars::JsonSchema) )] +#[allow(clippy::derive_partial_eq_without_eq)] #[derive(Clone, PartialEq, ::prost::Message)] pub struct Counterparty { /// identifies the client on the counterparty chain associated with a given @@ -102,6 +105,7 @@ impl ::prost::Name for Counterparty { } } /// ClientPaths define all the connection paths for a client state. +#[allow(clippy::derive_partial_eq_without_eq)] #[derive(Clone, PartialEq, ::prost::Message)] pub struct ClientPaths { /// list of connection paths @@ -119,6 +123,7 @@ impl ::prost::Name for ClientPaths { } } /// ConnectionPaths define all the connection paths for a given client state. +#[allow(clippy::derive_partial_eq_without_eq)] #[derive(Clone, PartialEq, ::prost::Message)] pub struct ConnectionPaths { /// client state unique identifier @@ -144,6 +149,7 @@ impl ::prost::Name for ConnectionPaths { all(feature = "json-schema", feature = "serde"), derive(::schemars::JsonSchema) )] +#[allow(clippy::derive_partial_eq_without_eq)] #[derive(Clone, PartialEq, ::prost::Message)] pub struct Version { /// unique version identifier @@ -164,6 +170,7 @@ impl ::prost::Name for Version { } } /// Params defines the set of Connection parameters. +#[allow(clippy::derive_partial_eq_without_eq)] #[derive(Clone, Copy, PartialEq, ::prost::Message)] pub struct Params { /// maximum expected time per block (in nanoseconds), used to enforce block delay. This parameter should reflect the @@ -222,6 +229,7 @@ impl State { } } /// GenesisState defines the ibc connection submodule's genesis state. +#[allow(clippy::derive_partial_eq_without_eq)] #[derive(Clone, PartialEq, ::prost::Message)] pub struct GenesisState { #[prost(message, repeated, tag = "1")] @@ -246,6 +254,7 @@ impl ::prost::Name for GenesisState { } /// MsgConnectionOpenInit defines the msg sent by an account on Chain A to /// initialize a connection with Chain B. +#[allow(clippy::derive_partial_eq_without_eq)] #[derive(Clone, PartialEq, ::prost::Message)] pub struct MsgConnectionOpenInit { #[prost(string, tag = "1")] @@ -271,6 +280,7 @@ impl ::prost::Name for MsgConnectionOpenInit { } /// MsgConnectionOpenInitResponse defines the Msg/ConnectionOpenInit response /// type. +#[allow(clippy::derive_partial_eq_without_eq)] #[derive(Clone, Copy, PartialEq, ::prost::Message)] pub struct MsgConnectionOpenInitResponse {} impl ::prost::Name for MsgConnectionOpenInitResponse { @@ -285,6 +295,7 @@ impl ::prost::Name for MsgConnectionOpenInitResponse { } /// MsgConnectionOpenTry defines a msg sent by a Relayer to try to open a /// connection on Chain B. +#[allow(clippy::derive_partial_eq_without_eq)] #[derive(Clone, PartialEq, ::prost::Message)] pub struct MsgConnectionOpenTry { #[prost(string, tag = "1")] @@ -332,6 +343,7 @@ impl ::prost::Name for MsgConnectionOpenTry { } } /// MsgConnectionOpenTryResponse defines the Msg/ConnectionOpenTry response type. +#[allow(clippy::derive_partial_eq_without_eq)] #[derive(Clone, Copy, PartialEq, ::prost::Message)] pub struct MsgConnectionOpenTryResponse {} impl ::prost::Name for MsgConnectionOpenTryResponse { @@ -346,6 +358,7 @@ impl ::prost::Name for MsgConnectionOpenTryResponse { } /// MsgConnectionOpenAck defines a msg sent by a Relayer to Chain A to /// acknowledge the change of connection state to TRYOPEN on Chain B. +#[allow(clippy::derive_partial_eq_without_eq)] #[derive(Clone, PartialEq, ::prost::Message)] pub struct MsgConnectionOpenAck { #[prost(string, tag = "1")] @@ -387,6 +400,7 @@ impl ::prost::Name for MsgConnectionOpenAck { } } /// MsgConnectionOpenAckResponse defines the Msg/ConnectionOpenAck response type. +#[allow(clippy::derive_partial_eq_without_eq)] #[derive(Clone, Copy, PartialEq, ::prost::Message)] pub struct MsgConnectionOpenAckResponse {} impl ::prost::Name for MsgConnectionOpenAckResponse { @@ -401,6 +415,7 @@ impl ::prost::Name for MsgConnectionOpenAckResponse { } /// MsgConnectionOpenConfirm defines a msg sent by a Relayer to Chain B to /// acknowledge the change of connection state to OPEN on Chain A. +#[allow(clippy::derive_partial_eq_without_eq)] #[derive(Clone, PartialEq, ::prost::Message)] pub struct MsgConnectionOpenConfirm { #[prost(string, tag = "1")] @@ -425,6 +440,7 @@ impl ::prost::Name for MsgConnectionOpenConfirm { } /// MsgConnectionOpenConfirmResponse defines the Msg/ConnectionOpenConfirm /// response type. +#[allow(clippy::derive_partial_eq_without_eq)] #[derive(Clone, Copy, PartialEq, ::prost::Message)] pub struct MsgConnectionOpenConfirmResponse {} impl ::prost::Name for MsgConnectionOpenConfirmResponse { @@ -438,6 +454,7 @@ impl ::prost::Name for MsgConnectionOpenConfirmResponse { } } /// MsgUpdateParams defines the sdk.Msg type to update the connection parameters. +#[allow(clippy::derive_partial_eq_without_eq)] #[derive(Clone, PartialEq, ::prost::Message)] pub struct MsgUpdateParams { /// signer address @@ -460,6 +477,7 @@ impl ::prost::Name for MsgUpdateParams { } } /// MsgUpdateParamsResponse defines the MsgUpdateParams response type. +#[allow(clippy::derive_partial_eq_without_eq)] #[derive(Clone, Copy, PartialEq, ::prost::Message)] pub struct MsgUpdateParamsResponse {} impl ::prost::Name for MsgUpdateParamsResponse { @@ -499,8 +517,8 @@ pub mod msg_client { where T: tonic::client::GrpcService, T::Error: Into, - T::ResponseBody: Body + std::marker::Send + 'static, - ::Error: Into + std::marker::Send, + T::ResponseBody: Body + Send + 'static, + ::Error: Into + Send, { pub fn new(inner: T) -> Self { let inner = tonic::client::Grpc::new(inner); @@ -525,7 +543,7 @@ pub mod msg_client { >, , - >>::Error: Into + std::marker::Send + std::marker::Sync, + >>::Error: Into + Send + Sync, { MsgClient::new(InterceptedService::new(inner, interceptor)) } @@ -717,7 +735,7 @@ pub mod msg_server { use tonic::codegen::*; /// Generated trait containing gRPC methods that should be implemented for use with MsgServer. #[async_trait] - pub trait Msg: std::marker::Send + std::marker::Sync + 'static { + pub trait Msg: Send + Sync + 'static { /// ConnectionOpenInit defines a rpc handler method for MsgConnectionOpenInit. async fn connection_open_init( &self, @@ -763,14 +781,14 @@ pub mod msg_server { } /// Msg defines the ibc/connection Msg service. #[derive(Debug)] - pub struct MsgServer { + pub struct MsgServer { inner: Arc, accept_compression_encodings: EnabledCompressionEncodings, send_compression_encodings: EnabledCompressionEncodings, max_decoding_message_size: Option, max_encoding_message_size: Option, } - impl MsgServer { + impl MsgServer { pub fn new(inner: T) -> Self { Self::from_arc(Arc::new(inner)) } @@ -824,8 +842,8 @@ pub mod msg_server { impl tonic::codegen::Service> for MsgServer where T: Msg, - B: Body + std::marker::Send + 'static, - B::Error: Into + std::marker::Send + 'static, + B: Body + Send + 'static, + B::Error: Into + Send + 'static, { type Response = http::Response; type Error = std::convert::Infallible; @@ -1075,7 +1093,7 @@ pub mod msg_server { } } } - impl Clone for MsgServer { + impl Clone for MsgServer { fn clone(&self) -> Self { let inner = self.inner.clone(); Self { @@ -1087,14 +1105,13 @@ pub mod msg_server { } } } - /// Generated gRPC service name - pub const SERVICE_NAME: &str = "ibc.core.connection.v1.Msg"; - impl tonic::server::NamedService for MsgServer { - const NAME: &'static str = SERVICE_NAME; + impl tonic::server::NamedService for MsgServer { + const NAME: &'static str = "ibc.core.connection.v1.Msg"; } } /// QueryConnectionRequest is the request type for the Query/Connection RPC /// method +#[allow(clippy::derive_partial_eq_without_eq)] #[derive(Clone, PartialEq, ::prost::Message)] pub struct QueryConnectionRequest { /// connection unique identifier @@ -1114,6 +1131,7 @@ impl ::prost::Name for QueryConnectionRequest { /// QueryConnectionResponse is the response type for the Query/Connection RPC /// method. Besides the connection end, it includes a proof and the height from /// which the proof was retrieved. +#[allow(clippy::derive_partial_eq_without_eq)] #[derive(Clone, PartialEq, ::prost::Message)] pub struct QueryConnectionResponse { /// connection associated with the request identifier @@ -1138,6 +1156,7 @@ impl ::prost::Name for QueryConnectionResponse { } /// QueryConnectionsRequest is the request type for the Query/Connections RPC /// method +#[allow(clippy::derive_partial_eq_without_eq)] #[derive(Clone, PartialEq, ::prost::Message)] pub struct QueryConnectionsRequest { #[prost(message, optional, tag = "1")] @@ -1157,6 +1176,7 @@ impl ::prost::Name for QueryConnectionsRequest { } /// QueryConnectionsResponse is the response type for the Query/Connections RPC /// method. +#[allow(clippy::derive_partial_eq_without_eq)] #[derive(Clone, PartialEq, ::prost::Message)] pub struct QueryConnectionsResponse { /// list of stored connections of the chain. @@ -1183,6 +1203,7 @@ impl ::prost::Name for QueryConnectionsResponse { } /// QueryClientConnectionsRequest is the request type for the /// Query/ClientConnections RPC method +#[allow(clippy::derive_partial_eq_without_eq)] #[derive(Clone, PartialEq, ::prost::Message)] pub struct QueryClientConnectionsRequest { /// client identifier associated with a connection @@ -1201,6 +1222,7 @@ impl ::prost::Name for QueryClientConnectionsRequest { } /// QueryClientConnectionsResponse is the response type for the /// Query/ClientConnections RPC method +#[allow(clippy::derive_partial_eq_without_eq)] #[derive(Clone, PartialEq, ::prost::Message)] pub struct QueryClientConnectionsResponse { /// slice of all the connection paths associated with a client. @@ -1225,6 +1247,7 @@ impl ::prost::Name for QueryClientConnectionsResponse { } /// QueryConnectionClientStateRequest is the request type for the /// Query/ConnectionClientState RPC method +#[allow(clippy::derive_partial_eq_without_eq)] #[derive(Clone, PartialEq, ::prost::Message)] pub struct QueryConnectionClientStateRequest { /// connection identifier @@ -1243,6 +1266,7 @@ impl ::prost::Name for QueryConnectionClientStateRequest { } /// QueryConnectionClientStateResponse is the response type for the /// Query/ConnectionClientState RPC method +#[allow(clippy::derive_partial_eq_without_eq)] #[derive(Clone, PartialEq, ::prost::Message)] pub struct QueryConnectionClientStateResponse { /// client state associated with the channel @@ -1269,6 +1293,7 @@ impl ::prost::Name for QueryConnectionClientStateResponse { } /// QueryConnectionConsensusStateRequest is the request type for the /// Query/ConnectionConsensusState RPC method +#[allow(clippy::derive_partial_eq_without_eq)] #[derive(Clone, PartialEq, ::prost::Message)] pub struct QueryConnectionConsensusStateRequest { /// connection identifier @@ -1291,6 +1316,7 @@ impl ::prost::Name for QueryConnectionConsensusStateRequest { } /// QueryConnectionConsensusStateResponse is the response type for the /// Query/ConnectionConsensusState RPC method +#[allow(clippy::derive_partial_eq_without_eq)] #[derive(Clone, PartialEq, ::prost::Message)] pub struct QueryConnectionConsensusStateResponse { /// consensus state associated with the channel @@ -1319,6 +1345,7 @@ impl ::prost::Name for QueryConnectionConsensusStateResponse { } } /// QueryConnectionParamsRequest is the request type for the Query/ConnectionParams RPC method. +#[allow(clippy::derive_partial_eq_without_eq)] #[derive(Clone, Copy, PartialEq, ::prost::Message)] pub struct QueryConnectionParamsRequest {} impl ::prost::Name for QueryConnectionParamsRequest { @@ -1332,6 +1359,7 @@ impl ::prost::Name for QueryConnectionParamsRequest { } } /// QueryConnectionParamsResponse is the response type for the Query/ConnectionParams RPC method. +#[allow(clippy::derive_partial_eq_without_eq)] #[derive(Clone, Copy, PartialEq, ::prost::Message)] pub struct QueryConnectionParamsResponse { /// params defines the parameters of the module. @@ -1375,8 +1403,8 @@ pub mod query_client { where T: tonic::client::GrpcService, T::Error: Into, - T::ResponseBody: Body + std::marker::Send + 'static, - ::Error: Into + std::marker::Send, + T::ResponseBody: Body + Send + 'static, + ::Error: Into + Send, { pub fn new(inner: T) -> Self { let inner = tonic::client::Grpc::new(inner); @@ -1401,7 +1429,7 @@ pub mod query_client { >, , - >>::Error: Into + std::marker::Send + std::marker::Sync, + >>::Error: Into + Send + Sync, { QueryClient::new(InterceptedService::new(inner, interceptor)) } @@ -1618,7 +1646,7 @@ pub mod query_server { use tonic::codegen::*; /// Generated trait containing gRPC methods that should be implemented for use with QueryServer. #[async_trait] - pub trait Query: std::marker::Send + std::marker::Sync + 'static { + pub trait Query: Send + Sync + 'static { /// Connection queries an IBC connection end. async fn connection( &self, @@ -1673,14 +1701,14 @@ pub mod query_server { } /// Query provides defines the gRPC querier service #[derive(Debug)] - pub struct QueryServer { + pub struct QueryServer { inner: Arc, accept_compression_encodings: EnabledCompressionEncodings, send_compression_encodings: EnabledCompressionEncodings, max_decoding_message_size: Option, max_encoding_message_size: Option, } - impl QueryServer { + impl QueryServer { pub fn new(inner: T) -> Self { Self::from_arc(Arc::new(inner)) } @@ -1734,8 +1762,8 @@ pub mod query_server { impl tonic::codegen::Service> for QueryServer where T: Query, - B: Body + std::marker::Send + 'static, - B::Error: Into + std::marker::Send + 'static, + B: Body + Send + 'static, + B::Error: Into + Send + 'static, { type Response = http::Response; type Error = std::convert::Infallible; @@ -2043,7 +2071,7 @@ pub mod query_server { } } } - impl Clone for QueryServer { + impl Clone for QueryServer { fn clone(&self) -> Self { let inner = self.inner.clone(); Self { @@ -2055,9 +2083,7 @@ pub mod query_server { } } } - /// Generated gRPC service name - pub const SERVICE_NAME: &str = "ibc.core.connection.v1.Query"; - impl tonic::server::NamedService for QueryServer { - const NAME: &'static str = SERVICE_NAME; + impl tonic::server::NamedService for QueryServer { + const NAME: &'static str = "ibc.core.connection.v1.Query"; } } diff --git a/src/prost/ibc.core.types.v1.rs b/src/prost/ibc.core.types.v1.rs index c33f23fa..fea52458 100644 --- a/src/prost/ibc.core.types.v1.rs +++ b/src/prost/ibc.core.types.v1.rs @@ -1,5 +1,6 @@ // This file is @generated by prost-build. /// GenesisState defines the ibc module's genesis state. +#[allow(clippy::derive_partial_eq_without_eq)] #[derive(Clone, PartialEq, ::prost::Message)] pub struct GenesisState { /// ICS002 - Clients genesis state diff --git a/src/prost/ibc.lightclients.localhost.v1.rs b/src/prost/ibc.lightclients.localhost.v1.rs index c5617b08..e5413e37 100644 --- a/src/prost/ibc.lightclients.localhost.v1.rs +++ b/src/prost/ibc.lightclients.localhost.v1.rs @@ -1,6 +1,7 @@ // This file is @generated by prost-build. /// ClientState defines a loopback (localhost) client. It requires (read-only) /// access to keys outside the client prefix. +#[allow(clippy::derive_partial_eq_without_eq)] #[derive(Clone, PartialEq, ::prost::Message)] pub struct ClientState { /// self chain ID diff --git a/src/prost/ibc.lightclients.localhost.v2.rs b/src/prost/ibc.lightclients.localhost.v2.rs index 8c4f34d2..86bebfff 100644 --- a/src/prost/ibc.lightclients.localhost.v2.rs +++ b/src/prost/ibc.lightclients.localhost.v2.rs @@ -1,5 +1,6 @@ // This file is @generated by prost-build. /// ClientState defines the 09-localhost client state +#[allow(clippy::derive_partial_eq_without_eq)] #[derive(Clone, Copy, PartialEq, ::prost::Message)] pub struct ClientState { /// the latest block height diff --git a/src/prost/ibc.lightclients.solomachine.v2.rs b/src/prost/ibc.lightclients.solomachine.v2.rs index 77aa9646..7ae9f3e4 100644 --- a/src/prost/ibc.lightclients.solomachine.v2.rs +++ b/src/prost/ibc.lightclients.solomachine.v2.rs @@ -1,6 +1,7 @@ // This file is @generated by prost-build. /// ClientState defines a solo machine client that tracks the current consensus /// state and if the client is frozen. +#[allow(clippy::derive_partial_eq_without_eq)] #[derive(Clone, PartialEq, ::prost::Message)] pub struct ClientState { /// latest sequence of the client state @@ -29,6 +30,7 @@ impl ::prost::Name for ClientState { /// ConsensusState defines a solo machine consensus state. The sequence of a /// consensus state is contained in the "height" key used in storing the /// consensus state. +#[allow(clippy::derive_partial_eq_without_eq)] #[derive(Clone, PartialEq, ::prost::Message)] pub struct ConsensusState { /// public key of the solo machine @@ -53,6 +55,7 @@ impl ::prost::Name for ConsensusState { } } /// Header defines a solo machine consensus header +#[allow(clippy::derive_partial_eq_without_eq)] #[derive(Clone, PartialEq, ::prost::Message)] pub struct Header { /// sequence to update solo machine public key at @@ -81,6 +84,7 @@ impl ::prost::Name for Header { } /// Misbehaviour defines misbehaviour for a solo machine which consists /// of a sequence and two signatures over different messages at that sequence. +#[allow(clippy::derive_partial_eq_without_eq)] #[derive(Clone, PartialEq, ::prost::Message)] pub struct Misbehaviour { #[prost(string, tag = "1")] @@ -104,6 +108,7 @@ impl ::prost::Name for Misbehaviour { } /// SignatureAndData contains a signature and the data signed over to create that /// signature. +#[allow(clippy::derive_partial_eq_without_eq)] #[derive(Clone, PartialEq, ::prost::Message)] pub struct SignatureAndData { #[prost(bytes = "vec", tag = "1")] @@ -127,6 +132,7 @@ impl ::prost::Name for SignatureAndData { } /// TimestampedSignatureData contains the signature data and the timestamp of the /// signature. +#[allow(clippy::derive_partial_eq_without_eq)] #[derive(Clone, PartialEq, ::prost::Message)] pub struct TimestampedSignatureData { #[prost(bytes = "vec", tag = "1")] @@ -145,6 +151,7 @@ impl ::prost::Name for TimestampedSignatureData { } } /// SignBytes defines the signed bytes used for signature verification. +#[allow(clippy::derive_partial_eq_without_eq)] #[derive(Clone, PartialEq, ::prost::Message)] pub struct SignBytes { #[prost(uint64, tag = "1")] @@ -171,6 +178,7 @@ impl ::prost::Name for SignBytes { } } /// HeaderData returns the SignBytes data for update verification. +#[allow(clippy::derive_partial_eq_without_eq)] #[derive(Clone, PartialEq, ::prost::Message)] pub struct HeaderData { /// header public key @@ -191,6 +199,7 @@ impl ::prost::Name for HeaderData { } } /// ClientStateData returns the SignBytes data for client state verification. +#[allow(clippy::derive_partial_eq_without_eq)] #[derive(Clone, PartialEq, ::prost::Message)] pub struct ClientStateData { #[prost(bytes = "vec", tag = "1")] @@ -210,6 +219,7 @@ impl ::prost::Name for ClientStateData { } /// ConsensusStateData returns the SignBytes data for consensus state /// verification. +#[allow(clippy::derive_partial_eq_without_eq)] #[derive(Clone, PartialEq, ::prost::Message)] pub struct ConsensusStateData { #[prost(bytes = "vec", tag = "1")] @@ -231,6 +241,7 @@ impl ::prost::Name for ConsensusStateData { } /// ConnectionStateData returns the SignBytes data for connection state /// verification. +#[allow(clippy::derive_partial_eq_without_eq)] #[derive(Clone, PartialEq, ::prost::Message)] pub struct ConnectionStateData { #[prost(bytes = "vec", tag = "1")] @@ -252,6 +263,7 @@ impl ::prost::Name for ConnectionStateData { } /// ChannelStateData returns the SignBytes data for channel state /// verification. +#[allow(clippy::derive_partial_eq_without_eq)] #[derive(Clone, PartialEq, ::prost::Message)] pub struct ChannelStateData { #[prost(bytes = "vec", tag = "1")] @@ -271,6 +283,7 @@ impl ::prost::Name for ChannelStateData { } /// PacketCommitmentData returns the SignBytes data for packet commitment /// verification. +#[allow(clippy::derive_partial_eq_without_eq)] #[derive(Clone, PartialEq, ::prost::Message)] pub struct PacketCommitmentData { #[prost(bytes = "vec", tag = "1")] @@ -290,6 +303,7 @@ impl ::prost::Name for PacketCommitmentData { } /// PacketAcknowledgementData returns the SignBytes data for acknowledgement /// verification. +#[allow(clippy::derive_partial_eq_without_eq)] #[derive(Clone, PartialEq, ::prost::Message)] pub struct PacketAcknowledgementData { #[prost(bytes = "vec", tag = "1")] @@ -309,6 +323,7 @@ impl ::prost::Name for PacketAcknowledgementData { } /// PacketReceiptAbsenceData returns the SignBytes data for /// packet receipt absence verification. +#[allow(clippy::derive_partial_eq_without_eq)] #[derive(Clone, PartialEq, ::prost::Message)] pub struct PacketReceiptAbsenceData { #[prost(bytes = "vec", tag = "1")] @@ -326,6 +341,7 @@ impl ::prost::Name for PacketReceiptAbsenceData { } /// NextSequenceRecvData returns the SignBytes data for verification of the next /// sequence to be received. +#[allow(clippy::derive_partial_eq_without_eq)] #[derive(Clone, PartialEq, ::prost::Message)] pub struct NextSequenceRecvData { #[prost(bytes = "vec", tag = "1")] diff --git a/src/prost/ibc.lightclients.solomachine.v3.rs b/src/prost/ibc.lightclients.solomachine.v3.rs index 377430b9..a1dc0a14 100644 --- a/src/prost/ibc.lightclients.solomachine.v3.rs +++ b/src/prost/ibc.lightclients.solomachine.v3.rs @@ -1,6 +1,7 @@ // This file is @generated by prost-build. /// ClientState defines a solo machine client that tracks the current consensus /// state and if the client is frozen. +#[allow(clippy::derive_partial_eq_without_eq)] #[derive(Clone, PartialEq, ::prost::Message)] pub struct ClientState { /// latest sequence of the client state @@ -25,6 +26,7 @@ impl ::prost::Name for ClientState { /// ConsensusState defines a solo machine consensus state. The sequence of a /// consensus state is contained in the "height" key used in storing the /// consensus state. +#[allow(clippy::derive_partial_eq_without_eq)] #[derive(Clone, PartialEq, ::prost::Message)] pub struct ConsensusState { /// public key of the solo machine @@ -49,6 +51,7 @@ impl ::prost::Name for ConsensusState { } } /// Header defines a solo machine consensus header +#[allow(clippy::derive_partial_eq_without_eq)] #[derive(Clone, PartialEq, ::prost::Message)] pub struct Header { #[prost(uint64, tag = "1")] @@ -74,6 +77,7 @@ impl ::prost::Name for Header { } /// Misbehaviour defines misbehaviour for a solo machine which consists /// of a sequence and two signatures over different messages at that sequence. +#[allow(clippy::derive_partial_eq_without_eq)] #[derive(Clone, PartialEq, ::prost::Message)] pub struct Misbehaviour { #[prost(uint64, tag = "1")] @@ -95,6 +99,7 @@ impl ::prost::Name for Misbehaviour { } /// SignatureAndData contains a signature and the data signed over to create that /// signature. +#[allow(clippy::derive_partial_eq_without_eq)] #[derive(Clone, PartialEq, ::prost::Message)] pub struct SignatureAndData { #[prost(bytes = "vec", tag = "1")] @@ -118,6 +123,7 @@ impl ::prost::Name for SignatureAndData { } /// TimestampedSignatureData contains the signature data and the timestamp of the /// signature. +#[allow(clippy::derive_partial_eq_without_eq)] #[derive(Clone, PartialEq, ::prost::Message)] pub struct TimestampedSignatureData { #[prost(bytes = "vec", tag = "1")] @@ -136,6 +142,7 @@ impl ::prost::Name for TimestampedSignatureData { } } /// SignBytes defines the signed bytes used for signature verification. +#[allow(clippy::derive_partial_eq_without_eq)] #[derive(Clone, PartialEq, ::prost::Message)] pub struct SignBytes { /// the sequence number @@ -165,6 +172,7 @@ impl ::prost::Name for SignBytes { } } /// HeaderData returns the SignBytes data for update verification. +#[allow(clippy::derive_partial_eq_without_eq)] #[derive(Clone, PartialEq, ::prost::Message)] pub struct HeaderData { /// header public key diff --git a/src/prost/ibc.lightclients.tendermint.v1.rs b/src/prost/ibc.lightclients.tendermint.v1.rs index 8412b325..5ba8be8f 100644 --- a/src/prost/ibc.lightclients.tendermint.v1.rs +++ b/src/prost/ibc.lightclients.tendermint.v1.rs @@ -1,6 +1,7 @@ // This file is @generated by prost-build. /// ClientState from Tendermint tracks the current validator set, latest height, /// and a possible frozen height. +#[allow(clippy::derive_partial_eq_without_eq)] #[derive(Clone, PartialEq, ::prost::Message)] pub struct ClientState { #[prost(string, tag = "1")] @@ -65,6 +66,7 @@ impl ::prost::Name for ClientState { } } /// ConsensusState defines the consensus state from Tendermint. +#[allow(clippy::derive_partial_eq_without_eq)] #[derive(Clone, PartialEq, ::prost::Message)] pub struct ConsensusState { /// timestamp that corresponds to the block height in which the ConsensusState @@ -93,6 +95,7 @@ impl ::prost::Name for ConsensusState { } /// Misbehaviour is a wrapper over two conflicting Headers /// that implements Misbehaviour interface expected by ICS-02 +#[allow(clippy::derive_partial_eq_without_eq)] #[derive(Clone, PartialEq, ::prost::Message)] pub struct Misbehaviour { /// ClientID is deprecated @@ -126,6 +129,7 @@ impl ::prost::Name for Misbehaviour { /// current time in order to correctly verify, and the TrustedValidators must /// hash to TrustedConsensusState.NextValidatorsHash since that is the last /// trusted validator set at the TrustedHeight. +#[allow(clippy::derive_partial_eq_without_eq)] #[derive(Clone, PartialEq, ::prost::Message)] pub struct Header { #[prost(message, optional, tag = "1")] @@ -153,6 +157,7 @@ impl ::prost::Name for Header { } /// Fraction defines the protobuf message type for tmmath.Fraction that only /// supports positive values. +#[allow(clippy::derive_partial_eq_without_eq)] #[derive(Clone, Copy, PartialEq, ::prost::Message)] pub struct Fraction { #[prost(uint64, tag = "1")] diff --git a/src/prost/ibc.lightclients.wasm.v1.rs b/src/prost/ibc.lightclients.wasm.v1.rs index f9cce66f..be06ef5f 100644 --- a/src/prost/ibc.lightclients.wasm.v1.rs +++ b/src/prost/ibc.lightclients.wasm.v1.rs @@ -1,5 +1,6 @@ // This file is @generated by prost-build. /// MsgStoreCode defines the request type for the StoreCode rpc. +#[allow(clippy::derive_partial_eq_without_eq)] #[derive(Clone, PartialEq, ::prost::Message)] pub struct MsgStoreCode { /// signer address @@ -20,6 +21,7 @@ impl ::prost::Name for MsgStoreCode { } } /// MsgStoreCodeResponse defines the response type for the StoreCode rpc +#[allow(clippy::derive_partial_eq_without_eq)] #[derive(Clone, PartialEq, ::prost::Message)] pub struct MsgStoreCodeResponse { /// checksum is the sha256 hash of the stored code @@ -37,6 +39,7 @@ impl ::prost::Name for MsgStoreCodeResponse { } } /// MsgRemoveChecksum defines the request type for the MsgRemoveChecksum rpc. +#[allow(clippy::derive_partial_eq_without_eq)] #[derive(Clone, PartialEq, ::prost::Message)] pub struct MsgRemoveChecksum { /// signer address @@ -57,6 +60,7 @@ impl ::prost::Name for MsgRemoveChecksum { } } /// MsgStoreChecksumResponse defines the response type for the StoreCode rpc +#[allow(clippy::derive_partial_eq_without_eq)] #[derive(Clone, Copy, PartialEq, ::prost::Message)] pub struct MsgRemoveChecksumResponse {} impl ::prost::Name for MsgRemoveChecksumResponse { @@ -70,6 +74,7 @@ impl ::prost::Name for MsgRemoveChecksumResponse { } } /// MsgMigrateContract defines the request type for the MigrateContract rpc. +#[allow(clippy::derive_partial_eq_without_eq)] #[derive(Clone, PartialEq, ::prost::Message)] pub struct MsgMigrateContract { /// signer address @@ -96,6 +101,7 @@ impl ::prost::Name for MsgMigrateContract { } } /// MsgMigrateContractResponse defines the response type for the MigrateContract rpc +#[allow(clippy::derive_partial_eq_without_eq)] #[derive(Clone, Copy, PartialEq, ::prost::Message)] pub struct MsgMigrateContractResponse {} impl ::prost::Name for MsgMigrateContractResponse { @@ -135,8 +141,8 @@ pub mod msg_client { where T: tonic::client::GrpcService, T::Error: Into, - T::ResponseBody: Body + std::marker::Send + 'static, - ::Error: Into + std::marker::Send, + T::ResponseBody: Body + Send + 'static, + ::Error: Into + Send, { pub fn new(inner: T) -> Self { let inner = tonic::client::Grpc::new(inner); @@ -161,7 +167,7 @@ pub mod msg_client { >, , - >>::Error: Into + std::marker::Send + std::marker::Sync, + >>::Error: Into + Send + Sync, { MsgClient::new(InterceptedService::new(inner, interceptor)) } @@ -287,7 +293,7 @@ pub mod msg_server { use tonic::codegen::*; /// Generated trait containing gRPC methods that should be implemented for use with MsgServer. #[async_trait] - pub trait Msg: std::marker::Send + std::marker::Sync + 'static { + pub trait Msg: Send + Sync + 'static { /// StoreCode defines a rpc handler method for MsgStoreCode. async fn store_code( &self, @@ -315,14 +321,14 @@ pub mod msg_server { } /// Msg defines the ibc/08-wasm Msg service. #[derive(Debug)] - pub struct MsgServer { + pub struct MsgServer { inner: Arc, accept_compression_encodings: EnabledCompressionEncodings, send_compression_encodings: EnabledCompressionEncodings, max_decoding_message_size: Option, max_encoding_message_size: Option, } - impl MsgServer { + impl MsgServer { pub fn new(inner: T) -> Self { Self::from_arc(Arc::new(inner)) } @@ -376,8 +382,8 @@ pub mod msg_server { impl tonic::codegen::Service> for MsgServer where T: Msg, - B: Body + std::marker::Send + 'static, - B::Error: Into + std::marker::Send + 'static, + B: Body + Send + 'static, + B::Error: Into + Send + 'static, { type Response = http::Response; type Error = std::convert::Infallible; @@ -537,7 +543,7 @@ pub mod msg_server { } } } - impl Clone for MsgServer { + impl Clone for MsgServer { fn clone(&self) -> Self { let inner = self.inner.clone(); Self { @@ -549,13 +555,12 @@ pub mod msg_server { } } } - /// Generated gRPC service name - pub const SERVICE_NAME: &str = "ibc.lightclients.wasm.v1.Msg"; - impl tonic::server::NamedService for MsgServer { - const NAME: &'static str = SERVICE_NAME; + impl tonic::server::NamedService for MsgServer { + const NAME: &'static str = "ibc.lightclients.wasm.v1.Msg"; } } /// QueryChecksumsRequest is the request type for the Query/Checksums RPC method. +#[allow(clippy::derive_partial_eq_without_eq)] #[derive(Clone, PartialEq, ::prost::Message)] pub struct QueryChecksumsRequest { /// pagination defines an optional pagination for the request. @@ -575,6 +580,7 @@ impl ::prost::Name for QueryChecksumsRequest { } } /// QueryChecksumsResponse is the response type for the Query/Checksums RPC method. +#[allow(clippy::derive_partial_eq_without_eq)] #[derive(Clone, PartialEq, ::prost::Message)] pub struct QueryChecksumsResponse { /// checksums is a list of the hex encoded checksums of all wasm codes stored. @@ -597,6 +603,7 @@ impl ::prost::Name for QueryChecksumsResponse { } } /// QueryCodeRequest is the request type for the Query/Code RPC method. +#[allow(clippy::derive_partial_eq_without_eq)] #[derive(Clone, PartialEq, ::prost::Message)] pub struct QueryCodeRequest { /// checksum is a hex encoded string of the code stored. @@ -614,6 +621,7 @@ impl ::prost::Name for QueryCodeRequest { } } /// QueryCodeResponse is the response type for the Query/Code RPC method. +#[allow(clippy::derive_partial_eq_without_eq)] #[derive(Clone, PartialEq, ::prost::Message)] pub struct QueryCodeResponse { #[prost(bytes = "vec", tag = "1")] @@ -656,8 +664,8 @@ pub mod query_client { where T: tonic::client::GrpcService, T::Error: Into, - T::ResponseBody: Body + std::marker::Send + 'static, - ::Error: Into + std::marker::Send, + T::ResponseBody: Body + Send + 'static, + ::Error: Into + Send, { pub fn new(inner: T) -> Self { let inner = tonic::client::Grpc::new(inner); @@ -682,7 +690,7 @@ pub mod query_client { >, , - >>::Error: Into + std::marker::Send + std::marker::Sync, + >>::Error: Into + Send + Sync, { QueryClient::new(InterceptedService::new(inner, interceptor)) } @@ -778,7 +786,7 @@ pub mod query_server { use tonic::codegen::*; /// Generated trait containing gRPC methods that should be implemented for use with QueryServer. #[async_trait] - pub trait Query: std::marker::Send + std::marker::Sync + 'static { + pub trait Query: Send + Sync + 'static { /// Get all Wasm checksums async fn checksums( &self, @@ -798,14 +806,14 @@ pub mod query_server { } /// Query service for wasm module #[derive(Debug)] - pub struct QueryServer { + pub struct QueryServer { inner: Arc, accept_compression_encodings: EnabledCompressionEncodings, send_compression_encodings: EnabledCompressionEncodings, max_decoding_message_size: Option, max_encoding_message_size: Option, } - impl QueryServer { + impl QueryServer { pub fn new(inner: T) -> Self { Self::from_arc(Arc::new(inner)) } @@ -859,8 +867,8 @@ pub mod query_server { impl tonic::codegen::Service> for QueryServer where T: Query, - B: Body + std::marker::Send + 'static, - B::Error: Into + std::marker::Send + 'static, + B: Body + Send + 'static, + B::Error: Into + Send + 'static, { type Response = http::Response; type Error = std::convert::Infallible; @@ -979,7 +987,7 @@ pub mod query_server { } } } - impl Clone for QueryServer { + impl Clone for QueryServer { fn clone(&self) -> Self { let inner = self.inner.clone(); Self { @@ -991,13 +999,12 @@ pub mod query_server { } } } - /// Generated gRPC service name - pub const SERVICE_NAME: &str = "ibc.lightclients.wasm.v1.Query"; - impl tonic::server::NamedService for QueryServer { - const NAME: &'static str = SERVICE_NAME; + impl tonic::server::NamedService for QueryServer { + const NAME: &'static str = "ibc.lightclients.wasm.v1.Query"; } } /// GenesisState defines 08-wasm's keeper genesis state +#[allow(clippy::derive_partial_eq_without_eq)] #[derive(Clone, PartialEq, ::prost::Message)] pub struct GenesisState { /// uploaded light client wasm contracts @@ -1015,6 +1022,7 @@ impl ::prost::Name for GenesisState { } } /// Contract stores contract code +#[allow(clippy::derive_partial_eq_without_eq)] #[derive(Clone, PartialEq, ::prost::Message)] pub struct Contract { /// contract byte code @@ -1032,6 +1040,7 @@ impl ::prost::Name for Contract { } } /// Wasm light client's Client state +#[allow(clippy::derive_partial_eq_without_eq)] #[derive(Clone, PartialEq, ::prost::Message)] pub struct ClientState { /// bytes encoding the client state of the underlying light client @@ -1056,6 +1065,7 @@ impl ::prost::Name for ClientState { } } /// Wasm light client's ConsensusState +#[allow(clippy::derive_partial_eq_without_eq)] #[derive(Clone, PartialEq, ::prost::Message)] pub struct ConsensusState { /// bytes encoding the consensus state of the underlying light client @@ -1078,6 +1088,7 @@ impl ::prost::Name for ConsensusState { all(feature = "json-schema", feature = "serde"), derive(::schemars::JsonSchema) )] +#[allow(clippy::derive_partial_eq_without_eq)] #[derive(Clone, PartialEq, ::prost::Message)] pub struct ClientMessage { #[prost(bytes = "vec", tag = "1")] @@ -1097,6 +1108,7 @@ impl ::prost::Name for ClientMessage { /// /// Deprecated: This message is deprecated in favor of storing the checksums /// using a Collections.KeySet. +#[allow(clippy::derive_partial_eq_without_eq)] #[derive(Clone, PartialEq, ::prost::Message)] pub struct Checksums { #[prost(bytes = "vec", repeated, tag = "1")] diff --git a/src/prost/ibc.mock.rs b/src/prost/ibc.mock.rs index 47503dcb..51f0287a 100644 --- a/src/prost/ibc.mock.rs +++ b/src/prost/ibc.mock.rs @@ -1,4 +1,5 @@ // This file is @generated by prost-build. +#[allow(clippy::derive_partial_eq_without_eq)] #[derive(Clone, Copy, PartialEq, ::prost::Message)] pub struct Header { #[prost(message, optional, tag = "1")] @@ -16,6 +17,7 @@ impl ::prost::Name for Header { "/ibc.mock.Header".into() } } +#[allow(clippy::derive_partial_eq_without_eq)] #[derive(Clone, Copy, PartialEq, ::prost::Message)] pub struct ClientState { #[prost(message, optional, tag = "1")] @@ -35,6 +37,7 @@ impl ::prost::Name for ClientState { "/ibc.mock.ClientState".into() } } +#[allow(clippy::derive_partial_eq_without_eq)] #[derive(Clone, Copy, PartialEq, ::prost::Message)] pub struct ConsensusState { #[prost(message, optional, tag = "1")] @@ -50,6 +53,7 @@ impl ::prost::Name for ConsensusState { "/ibc.mock.ConsensusState".into() } } +#[allow(clippy::derive_partial_eq_without_eq)] #[derive(Clone, PartialEq, ::prost::Message)] pub struct Misbehaviour { #[prost(string, tag = "1")] diff --git a/src/prost/interchain_security.ccv.consumer.v1.rs b/src/prost/interchain_security.ccv.consumer.v1.rs index ef911ea5..7b97a85e 100644 --- a/src/prost/interchain_security.ccv.consumer.v1.rs +++ b/src/prost/interchain_security.ccv.consumer.v1.rs @@ -1,10 +1,335 @@ // This file is @generated by prost-build. -/// CrossChainValidator defines the type used to store validator information internal -/// to the consumer CCV module. Note one cross chain validator entry is persisted for -/// each consumer validator, where incoming VSC packets update this data, which is eventually -/// forwarded to comet for consumer chain consensus. +/// MsgUpdateParams is the Msg/UpdateParams request type +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct MsgUpdateParams { + /// signer is the address of the governance account. + #[prost(string, tag = "1")] + pub authority: ::prost::alloc::string::String, + /// params defines the x/provider parameters to update. + #[prost(message, optional, tag = "2")] + pub params: ::core::option::Option, +} +impl ::prost::Name for MsgUpdateParams { + const NAME: &'static str = "MsgUpdateParams"; + const PACKAGE: &'static str = "interchain_security.ccv.consumer.v1"; + fn full_name() -> ::prost::alloc::string::String { + "interchain_security.ccv.consumer.v1.MsgUpdateParams".into() + } + fn type_url() -> ::prost::alloc::string::String { + "/interchain_security.ccv.consumer.v1.MsgUpdateParams".into() + } +} +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, Copy, PartialEq, ::prost::Message)] +pub struct MsgUpdateParamsResponse {} +impl ::prost::Name for MsgUpdateParamsResponse { + const NAME: &'static str = "MsgUpdateParamsResponse"; + const PACKAGE: &'static str = "interchain_security.ccv.consumer.v1"; + fn full_name() -> ::prost::alloc::string::String { + "interchain_security.ccv.consumer.v1.MsgUpdateParamsResponse".into() + } + fn type_url() -> ::prost::alloc::string::String { + "/interchain_security.ccv.consumer.v1.MsgUpdateParamsResponse".into() + } +} +/// Generated client implementations. +#[cfg(feature = "client")] +pub mod msg_client { + #![allow(unused_variables, dead_code, missing_docs, clippy::let_unit_value)] + use tonic::codegen::*; + use tonic::codegen::http::Uri; + /// Msg defines the Msg service. + #[derive(Debug, Clone)] + pub struct MsgClient { + inner: tonic::client::Grpc, + } + #[cfg(feature = "transport")] + impl MsgClient { + /// Attempt to create a new client by connecting to a given endpoint. + pub async fn connect(dst: D) -> Result + where + D: TryInto, + D::Error: Into, + { + let conn = tonic::transport::Endpoint::new(dst)?.connect().await?; + Ok(Self::new(conn)) + } + } + impl MsgClient + where + T: tonic::client::GrpcService, + T::Error: Into, + T::ResponseBody: Body + Send + 'static, + ::Error: Into + Send, + { + pub fn new(inner: T) -> Self { + let inner = tonic::client::Grpc::new(inner); + Self { inner } + } + pub fn with_origin(inner: T, origin: Uri) -> Self { + let inner = tonic::client::Grpc::with_origin(inner, origin); + Self { inner } + } + pub fn with_interceptor( + inner: T, + interceptor: F, + ) -> MsgClient> + where + F: tonic::service::Interceptor, + T::ResponseBody: Default, + T: tonic::codegen::Service< + http::Request, + Response = http::Response< + >::ResponseBody, + >, + >, + , + >>::Error: Into + Send + Sync, + { + MsgClient::new(InterceptedService::new(inner, interceptor)) + } + /// Compress requests with the given encoding. + /// + /// This requires the server to support it otherwise it might respond with an + /// error. + #[must_use] + pub fn send_compressed(mut self, encoding: CompressionEncoding) -> Self { + self.inner = self.inner.send_compressed(encoding); + self + } + /// Enable decompressing responses. + #[must_use] + pub fn accept_compressed(mut self, encoding: CompressionEncoding) -> Self { + self.inner = self.inner.accept_compressed(encoding); + self + } + /// Limits the maximum size of a decoded message. + /// + /// Default: `4MB` + #[must_use] + pub fn max_decoding_message_size(mut self, limit: usize) -> Self { + self.inner = self.inner.max_decoding_message_size(limit); + self + } + /// Limits the maximum size of an encoded message. + /// + /// Default: `usize::MAX` + #[must_use] + pub fn max_encoding_message_size(mut self, limit: usize) -> Self { + self.inner = self.inner.max_encoding_message_size(limit); + self + } + pub async fn update_params( + &mut self, + request: impl tonic::IntoRequest, + ) -> std::result::Result< + tonic::Response, + tonic::Status, + > { + self.inner + .ready() + .await + .map_err(|e| { + tonic::Status::new( + tonic::Code::Unknown, + format!("Service was not ready: {}", e.into()), + ) + })?; + let codec = tonic::codec::ProstCodec::default(); + let path = http::uri::PathAndQuery::from_static( + "/interchain_security.ccv.consumer.v1.Msg/UpdateParams", + ); + let mut req = request.into_request(); + req.extensions_mut() + .insert( + GrpcMethod::new( + "interchain_security.ccv.consumer.v1.Msg", + "UpdateParams", + ), + ); + self.inner.unary(req, path, codec).await + } + } +} +/// Generated server implementations. +#[cfg(feature = "server")] +pub mod msg_server { + #![allow(unused_variables, dead_code, missing_docs, clippy::let_unit_value)] + use tonic::codegen::*; + /// Generated trait containing gRPC methods that should be implemented for use with MsgServer. + #[async_trait] + pub trait Msg: Send + Sync + 'static { + async fn update_params( + &self, + request: tonic::Request, + ) -> std::result::Result< + tonic::Response, + tonic::Status, + >; + } + /// Msg defines the Msg service. + #[derive(Debug)] + pub struct MsgServer { + inner: Arc, + accept_compression_encodings: EnabledCompressionEncodings, + send_compression_encodings: EnabledCompressionEncodings, + max_decoding_message_size: Option, + max_encoding_message_size: Option, + } + impl MsgServer { + pub fn new(inner: T) -> Self { + Self::from_arc(Arc::new(inner)) + } + pub fn from_arc(inner: Arc) -> Self { + Self { + inner, + accept_compression_encodings: Default::default(), + send_compression_encodings: Default::default(), + max_decoding_message_size: None, + max_encoding_message_size: None, + } + } + pub fn with_interceptor( + inner: T, + interceptor: F, + ) -> InterceptedService + where + F: tonic::service::Interceptor, + { + InterceptedService::new(Self::new(inner), interceptor) + } + /// Enable decompressing requests with the given encoding. + #[must_use] + pub fn accept_compressed(mut self, encoding: CompressionEncoding) -> Self { + self.accept_compression_encodings.enable(encoding); + self + } + /// Compress responses with the given encoding, if the client supports it. + #[must_use] + pub fn send_compressed(mut self, encoding: CompressionEncoding) -> Self { + self.send_compression_encodings.enable(encoding); + self + } + /// Limits the maximum size of a decoded message. + /// + /// Default: `4MB` + #[must_use] + pub fn max_decoding_message_size(mut self, limit: usize) -> Self { + self.max_decoding_message_size = Some(limit); + self + } + /// Limits the maximum size of an encoded message. + /// + /// Default: `usize::MAX` + #[must_use] + pub fn max_encoding_message_size(mut self, limit: usize) -> Self { + self.max_encoding_message_size = Some(limit); + self + } + } + impl tonic::codegen::Service> for MsgServer + where + T: Msg, + B: Body + Send + 'static, + B::Error: Into + Send + 'static, + { + type Response = http::Response; + type Error = std::convert::Infallible; + type Future = BoxFuture; + fn poll_ready( + &mut self, + _cx: &mut Context<'_>, + ) -> Poll> { + Poll::Ready(Ok(())) + } + fn call(&mut self, req: http::Request) -> Self::Future { + match req.uri().path() { + "/interchain_security.ccv.consumer.v1.Msg/UpdateParams" => { + #[allow(non_camel_case_types)] + struct UpdateParamsSvc(pub Arc); + impl tonic::server::UnaryService + for UpdateParamsSvc { + type Response = super::MsgUpdateParamsResponse; + type Future = BoxFuture< + tonic::Response, + tonic::Status, + >; + fn call( + &mut self, + request: tonic::Request, + ) -> Self::Future { + let inner = Arc::clone(&self.0); + let fut = async move { + ::update_params(&inner, request).await + }; + Box::pin(fut) + } + } + let accept_compression_encodings = self.accept_compression_encodings; + let send_compression_encodings = self.send_compression_encodings; + let max_decoding_message_size = self.max_decoding_message_size; + let max_encoding_message_size = self.max_encoding_message_size; + let inner = self.inner.clone(); + let fut = async move { + let method = UpdateParamsSvc(inner); + let codec = tonic::codec::ProstCodec::default(); + let mut grpc = tonic::server::Grpc::new(codec) + .apply_compression_config( + accept_compression_encodings, + send_compression_encodings, + ) + .apply_max_message_size_config( + max_decoding_message_size, + max_encoding_message_size, + ); + let res = grpc.unary(method, req).await; + Ok(res) + }; + Box::pin(fut) + } + _ => { + Box::pin(async move { + Ok( + http::Response::builder() + .status(200) + .header("grpc-status", tonic::Code::Unimplemented as i32) + .header( + http::header::CONTENT_TYPE, + tonic::metadata::GRPC_CONTENT_TYPE, + ) + .body(empty_body()) + .unwrap(), + ) + }) + } + } + } + } + impl Clone for MsgServer { + fn clone(&self) -> Self { + let inner = self.inner.clone(); + Self { + inner, + accept_compression_encodings: self.accept_compression_encodings, + send_compression_encodings: self.send_compression_encodings, + max_decoding_message_size: self.max_decoding_message_size, + max_encoding_message_size: self.max_encoding_message_size, + } + } + } + impl tonic::server::NamedService for MsgServer { + const NAME: &'static str = "interchain_security.ccv.consumer.v1.Msg"; + } +} +/// CrossChainValidator defines the type used to store validator information +/// internal to the consumer CCV module. Note one cross chain validator entry is +/// persisted for each consumer validator, where incoming VSC packets update this +/// data, which is eventually forwarded to comet for consumer chain consensus. /// /// Note this type is only used internally to the consumer CCV module. +#[allow(clippy::derive_partial_eq_without_eq)] #[derive(Clone, PartialEq, ::prost::Message)] pub struct CrossChainValidator { #[prost(bytes = "vec", tag = "1")] @@ -14,6 +339,11 @@ pub struct CrossChainValidator { /// pubkey is the consensus public key of the validator, as a Protobuf Any. #[prost(message, optional, tag = "3")] pub pubkey: ::core::option::Option<::tendermint_proto::google::protobuf::Any>, + /// !!! DEPRECATED !!! opted_out is deprecated because after the introduction of Partial Set Security (PSS) + /// we removed the soft opt-out feature. + #[deprecated] + #[prost(bool, tag = "4")] + pub opted_out: bool, } impl ::prost::Name for CrossChainValidator { const NAME: &'static str = "CrossChainValidator"; @@ -29,6 +359,7 @@ impl ::prost::Name for CrossChainValidator { /// which may bounce back and forth until handled by the provider. /// /// Note this type is only used internally to the consumer CCV module. +#[allow(clippy::derive_partial_eq_without_eq)] #[derive(Clone, Copy, PartialEq, ::prost::Message)] pub struct SlashRecord { #[prost(bool, tag = "1")] @@ -49,6 +380,7 @@ impl ::prost::Name for SlashRecord { } } /// NextFeeDistributionEstimate holds information about next fee distribution +#[allow(clippy::derive_partial_eq_without_eq)] #[derive(Clone, PartialEq, ::prost::Message)] pub struct NextFeeDistributionEstimate { /// current block height at the time of querying @@ -66,7 +398,7 @@ pub struct NextFeeDistributionEstimate { /// total accruead fees at the time of querying #[prost(string, tag = "5")] pub total: ::prost::alloc::string::String, - /// amount distibuted to provider chain + /// amount distributed to provider chain #[prost(string, tag = "6")] pub to_provider: ::prost::alloc::string::String, /// amount distributed (kept) by consumer chain @@ -83,6 +415,7 @@ impl ::prost::Name for NextFeeDistributionEstimate { "/interchain_security.ccv.consumer.v1.NextFeeDistributionEstimate".into() } } +#[allow(clippy::derive_partial_eq_without_eq)] #[derive(Clone, Copy, PartialEq, ::prost::Message)] pub struct QueryNextFeeDistributionEstimateRequest {} impl ::prost::Name for QueryNextFeeDistributionEstimateRequest { @@ -97,6 +430,7 @@ impl ::prost::Name for QueryNextFeeDistributionEstimateRequest { .into() } } +#[allow(clippy::derive_partial_eq_without_eq)] #[derive(Clone, PartialEq, ::prost::Message)] pub struct QueryNextFeeDistributionEstimateResponse { #[prost(message, optional, tag = "1")] @@ -114,6 +448,7 @@ impl ::prost::Name for QueryNextFeeDistributionEstimateResponse { .into() } } +#[allow(clippy::derive_partial_eq_without_eq)] #[derive(Clone, Copy, PartialEq, ::prost::Message)] pub struct QueryParamsRequest {} impl ::prost::Name for QueryParamsRequest { @@ -127,6 +462,7 @@ impl ::prost::Name for QueryParamsRequest { } } /// QueryParamsResponse is response type for the Query/Params RPC method. +#[allow(clippy::derive_partial_eq_without_eq)] #[derive(Clone, PartialEq, ::prost::Message)] pub struct QueryParamsResponse { /// params holds all the parameters of this module. @@ -143,6 +479,7 @@ impl ::prost::Name for QueryParamsResponse { "/interchain_security.ccv.consumer.v1.QueryParamsResponse".into() } } +#[allow(clippy::derive_partial_eq_without_eq)] #[derive(Clone, Copy, PartialEq, ::prost::Message)] pub struct QueryProviderInfoRequest {} impl ::prost::Name for QueryProviderInfoRequest { @@ -155,6 +492,7 @@ impl ::prost::Name for QueryProviderInfoRequest { "/interchain_security.ccv.consumer.v1.QueryProviderInfoRequest".into() } } +#[allow(clippy::derive_partial_eq_without_eq)] #[derive(Clone, PartialEq, ::prost::Message)] pub struct QueryProviderInfoResponse { #[prost(message, optional, tag = "1")] @@ -172,6 +510,40 @@ impl ::prost::Name for QueryProviderInfoResponse { "/interchain_security.ccv.consumer.v1.QueryProviderInfoResponse".into() } } +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, Copy, PartialEq, ::prost::Message)] +pub struct QueryThrottleStateRequest {} +impl ::prost::Name for QueryThrottleStateRequest { + const NAME: &'static str = "QueryThrottleStateRequest"; + const PACKAGE: &'static str = "interchain_security.ccv.consumer.v1"; + fn full_name() -> ::prost::alloc::string::String { + "interchain_security.ccv.consumer.v1.QueryThrottleStateRequest".into() + } + fn type_url() -> ::prost::alloc::string::String { + "/interchain_security.ccv.consumer.v1.QueryThrottleStateRequest".into() + } +} +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct QueryThrottleStateResponse { + #[prost(message, optional, tag = "1")] + pub slash_record: ::core::option::Option, + #[prost(message, repeated, tag = "2")] + pub packet_data_queue: ::prost::alloc::vec::Vec< + super::super::v1::ConsumerPacketData, + >, +} +impl ::prost::Name for QueryThrottleStateResponse { + const NAME: &'static str = "QueryThrottleStateResponse"; + const PACKAGE: &'static str = "interchain_security.ccv.consumer.v1"; + fn full_name() -> ::prost::alloc::string::String { + "interchain_security.ccv.consumer.v1.QueryThrottleStateResponse".into() + } + fn type_url() -> ::prost::alloc::string::String { + "/interchain_security.ccv.consumer.v1.QueryThrottleStateResponse".into() + } +} +#[allow(clippy::derive_partial_eq_without_eq)] #[derive(Clone, PartialEq, ::prost::Message)] pub struct ChainInfo { #[prost(string, tag = "1")] @@ -219,8 +591,8 @@ pub mod query_client { where T: tonic::client::GrpcService, T::Error: Into, - T::ResponseBody: Body + std::marker::Send + 'static, - ::Error: Into + std::marker::Send, + T::ResponseBody: Body + Send + 'static, + ::Error: Into + Send, { pub fn new(inner: T) -> Self { let inner = tonic::client::Grpc::new(inner); @@ -245,7 +617,7 @@ pub mod query_client { >, , - >>::Error: Into + std::marker::Send + std::marker::Sync, + >>::Error: Into + Send + Sync, { QueryClient::new(InterceptedService::new(inner, interceptor)) } @@ -375,6 +747,37 @@ pub mod query_client { ); self.inner.unary(req, path, codec).await } + /// QueryThrottleState returns on-chain state relevant to throttled consumer packets + pub async fn query_throttle_state( + &mut self, + request: impl tonic::IntoRequest, + ) -> std::result::Result< + tonic::Response, + tonic::Status, + > { + self.inner + .ready() + .await + .map_err(|e| { + tonic::Status::new( + tonic::Code::Unknown, + format!("Service was not ready: {}", e.into()), + ) + })?; + let codec = tonic::codec::ProstCodec::default(); + let path = http::uri::PathAndQuery::from_static( + "/interchain_security.ccv.consumer.v1.Query/QueryThrottleState", + ); + let mut req = request.into_request(); + req.extensions_mut() + .insert( + GrpcMethod::new( + "interchain_security.ccv.consumer.v1.Query", + "QueryThrottleState", + ), + ); + self.inner.unary(req, path, codec).await + } } } /// Generated server implementations. @@ -384,7 +787,7 @@ pub mod query_server { use tonic::codegen::*; /// Generated trait containing gRPC methods that should be implemented for use with QueryServer. #[async_trait] - pub trait Query: std::marker::Send + std::marker::Sync + 'static { + pub trait Query: Send + Sync + 'static { /// ConsumerGenesis queries the genesis state needed to start a consumer chain /// whose proposal has been accepted async fn query_next_fee_distribution( @@ -409,16 +812,24 @@ pub mod query_server { tonic::Response, tonic::Status, >; + /// QueryThrottleState returns on-chain state relevant to throttled consumer packets + async fn query_throttle_state( + &self, + request: tonic::Request, + ) -> std::result::Result< + tonic::Response, + tonic::Status, + >; } #[derive(Debug)] - pub struct QueryServer { + pub struct QueryServer { inner: Arc, accept_compression_encodings: EnabledCompressionEncodings, send_compression_encodings: EnabledCompressionEncodings, max_decoding_message_size: Option, max_encoding_message_size: Option, } - impl QueryServer { + impl QueryServer { pub fn new(inner: T) -> Self { Self::from_arc(Arc::new(inner)) } @@ -472,8 +883,8 @@ pub mod query_server { impl tonic::codegen::Service> for QueryServer where T: Query, - B: Body + std::marker::Send + 'static, - B::Error: Into + std::marker::Send + 'static, + B: Body + Send + 'static, + B::Error: Into + Send + 'static, { type Response = http::Response; type Error = std::convert::Infallible; @@ -623,6 +1034,51 @@ pub mod query_server { }; Box::pin(fut) } + "/interchain_security.ccv.consumer.v1.Query/QueryThrottleState" => { + #[allow(non_camel_case_types)] + struct QueryThrottleStateSvc(pub Arc); + impl< + T: Query, + > tonic::server::UnaryService + for QueryThrottleStateSvc { + type Response = super::QueryThrottleStateResponse; + type Future = BoxFuture< + tonic::Response, + tonic::Status, + >; + fn call( + &mut self, + request: tonic::Request, + ) -> Self::Future { + let inner = Arc::clone(&self.0); + let fut = async move { + ::query_throttle_state(&inner, request).await + }; + Box::pin(fut) + } + } + let accept_compression_encodings = self.accept_compression_encodings; + let send_compression_encodings = self.send_compression_encodings; + let max_decoding_message_size = self.max_decoding_message_size; + let max_encoding_message_size = self.max_encoding_message_size; + let inner = self.inner.clone(); + let fut = async move { + let method = QueryThrottleStateSvc(inner); + let codec = tonic::codec::ProstCodec::default(); + let mut grpc = tonic::server::Grpc::new(codec) + .apply_compression_config( + accept_compression_encodings, + send_compression_encodings, + ) + .apply_max_message_size_config( + max_decoding_message_size, + max_encoding_message_size, + ); + let res = grpc.unary(method, req).await; + Ok(res) + }; + Box::pin(fut) + } _ => { Box::pin(async move { Ok( @@ -641,7 +1097,7 @@ pub mod query_server { } } } - impl Clone for QueryServer { + impl Clone for QueryServer { fn clone(&self) -> Self { let inner = self.inner.clone(); Self { @@ -653,9 +1109,178 @@ pub mod query_server { } } } - /// Generated gRPC service name - pub const SERVICE_NAME: &str = "interchain_security.ccv.consumer.v1.Query"; - impl tonic::server::NamedService for QueryServer { - const NAME: &'static str = SERVICE_NAME; + impl tonic::server::NamedService for QueryServer { + const NAME: &'static str = "interchain_security.ccv.consumer.v1.Query"; + } +} +/// GenesisState defines the CCV consumer genesis state +/// +/// Note: this type is only used on consumer side and references shared types with +/// provider +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct GenesisState { + /// ConsumerParams is a shared type with provider module + #[prost(message, optional, tag = "1")] + pub params: ::core::option::Option, + /// Client ID of the provider. Empty for a new chain, filled in on restart. + #[prost(string, tag = "2")] + pub provider_client_id: ::prost::alloc::string::String, + /// Channel ID of the provider. Empty for a new chain, filled in on restart. + #[prost(string, tag = "3")] + pub provider_channel_id: ::prost::alloc::string::String, + /// true for new chain, false for chain restart. + #[prost(bool, tag = "4")] + pub new_chain: bool, + /// !!! DEPRECATED !!! ProviderClientState is deprecated. Use provider.client_state instead + #[deprecated] + #[prost(message, optional, tag = "5")] + pub provider_client_state: ::core::option::Option< + super::super::super::super::ibc::lightclients::tendermint::v1::ClientState, + >, + /// !!! DEPRECATED !!! ProviderConsensusState is deprecated. Use provider.consensus_state instead + #[deprecated] + #[prost(message, optional, tag = "6")] + pub provider_consensus_state: ::core::option::Option< + super::super::super::super::ibc::lightclients::tendermint::v1::ConsensusState, + >, + /// MaturingPackets nil on new chain, filled in on restart. + #[prost(message, repeated, tag = "7")] + pub maturing_packets: ::prost::alloc::vec::Vec, + /// !!! DEPRECATED !!!! InitialValset is deprecated. Use provider.initial_val_set instead + #[deprecated] + #[prost(message, repeated, tag = "8")] + pub initial_val_set: ::prost::alloc::vec::Vec< + ::tendermint_proto::abci::ValidatorUpdate, + >, + /// HeightToValsetUpdateId nil on new chain, filled in on restart. + #[prost(message, repeated, tag = "9")] + pub height_to_valset_update_id: ::prost::alloc::vec::Vec, + /// OutstandingDowntimes nil on new chain, filled in on restart. + #[prost(message, repeated, tag = "10")] + pub outstanding_downtime_slashing: ::prost::alloc::vec::Vec, + /// PendingConsumerPackets nil on new chain, filled in on restart. + #[prost(message, optional, tag = "11")] + pub pending_consumer_packets: ::core::option::Option, + /// LastTransmissionBlockHeight nil on new chain, filled in on restart. + #[prost(message, optional, tag = "12")] + pub last_transmission_block_height: ::core::option::Option< + LastTransmissionBlockHeight, + >, + /// flag indicating whether the consumer CCV module starts in pre-CCV state + #[prost(bool, tag = "13")] + pub pre_ccv: bool, + #[prost(message, optional, tag = "14")] + pub provider: ::core::option::Option, +} +impl ::prost::Name for GenesisState { + const NAME: &'static str = "GenesisState"; + const PACKAGE: &'static str = "interchain_security.ccv.consumer.v1"; + fn full_name() -> ::prost::alloc::string::String { + "interchain_security.ccv.consumer.v1.GenesisState".into() + } + fn type_url() -> ::prost::alloc::string::String { + "/interchain_security.ccv.consumer.v1.GenesisState".into() + } +} +/// HeightValsetUpdateID represents a mapping internal to the consumer CCV module +/// which links a block height to each recv valset update id. +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, Copy, PartialEq, ::prost::Message)] +pub struct HeightToValsetUpdateId { + #[prost(uint64, tag = "1")] + pub height: u64, + #[prost(uint64, tag = "2")] + pub valset_update_id: u64, +} +impl ::prost::Name for HeightToValsetUpdateId { + const NAME: &'static str = "HeightToValsetUpdateID"; + const PACKAGE: &'static str = "interchain_security.ccv.consumer.v1"; + fn full_name() -> ::prost::alloc::string::String { + "interchain_security.ccv.consumer.v1.HeightToValsetUpdateID".into() + } + fn type_url() -> ::prost::alloc::string::String { + "/interchain_security.ccv.consumer.v1.HeightToValsetUpdateID".into() + } +} +/// OutstandingDowntime defines the type used internally to the consumer CCV +/// module and is used in order to not send multiple slashing requests for +/// the same downtime infraction. +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct OutstandingDowntime { + #[prost(string, tag = "1")] + pub validator_consensus_address: ::prost::alloc::string::String, +} +impl ::prost::Name for OutstandingDowntime { + const NAME: &'static str = "OutstandingDowntime"; + const PACKAGE: &'static str = "interchain_security.ccv.consumer.v1"; + fn full_name() -> ::prost::alloc::string::String { + "interchain_security.ccv.consumer.v1.OutstandingDowntime".into() + } + fn type_url() -> ::prost::alloc::string::String { + "/interchain_security.ccv.consumer.v1.OutstandingDowntime".into() + } +} +/// LastTransmissionBlockHeight is the last time validator holding +/// pools were transmitted to the provider chain. This type is used internally +/// to the consumer CCV module. +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, Copy, PartialEq, ::prost::Message)] +pub struct LastTransmissionBlockHeight { + #[prost(int64, tag = "1")] + pub height: i64, +} +impl ::prost::Name for LastTransmissionBlockHeight { + const NAME: &'static str = "LastTransmissionBlockHeight"; + const PACKAGE: &'static str = "interchain_security.ccv.consumer.v1"; + fn full_name() -> ::prost::alloc::string::String { + "interchain_security.ccv.consumer.v1.LastTransmissionBlockHeight".into() + } + fn type_url() -> ::prost::alloc::string::String { + "/interchain_security.ccv.consumer.v1.LastTransmissionBlockHeight".into() + } +} +/// MaturingVSCPacket represents a vsc packet that is maturing internal to the +/// consumer CCV module, where the consumer has not yet relayed a VSCMatured +/// packet back to the provider. +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, Copy, PartialEq, ::prost::Message)] +pub struct MaturingVscPacket { + #[prost(uint64, tag = "1")] + pub vsc_id: u64, + #[prost(message, optional, tag = "2")] + pub maturity_time: ::core::option::Option< + ::tendermint_proto::google::protobuf::Timestamp, + >, +} +impl ::prost::Name for MaturingVscPacket { + const NAME: &'static str = "MaturingVSCPacket"; + const PACKAGE: &'static str = "interchain_security.ccv.consumer.v1"; + fn full_name() -> ::prost::alloc::string::String { + "interchain_security.ccv.consumer.v1.MaturingVSCPacket".into() + } + fn type_url() -> ::prost::alloc::string::String { + "/interchain_security.ccv.consumer.v1.MaturingVSCPacket".into() + } +} +/// ConsumerPacketDataList is a list of consumer packet data packets. +/// +/// Note this type is used internally to the consumer CCV module +/// for exporting / importing state in InitGenesis and ExportGenesis. +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct ConsumerPacketDataList { + #[prost(message, repeated, tag = "1")] + pub list: ::prost::alloc::vec::Vec, +} +impl ::prost::Name for ConsumerPacketDataList { + const NAME: &'static str = "ConsumerPacketDataList"; + const PACKAGE: &'static str = "interchain_security.ccv.consumer.v1"; + fn full_name() -> ::prost::alloc::string::String { + "interchain_security.ccv.consumer.v1.ConsumerPacketDataList".into() + } + fn type_url() -> ::prost::alloc::string::String { + "/interchain_security.ccv.consumer.v1.ConsumerPacketDataList".into() } } diff --git a/src/prost/interchain_security.ccv.provider.v1.rs b/src/prost/interchain_security.ccv.provider.v1.rs index 882b1d3a..d40a214e 100644 --- a/src/prost/interchain_security.ccv.provider.v1.rs +++ b/src/prost/interchain_security.ccv.provider.v1.rs @@ -1,1482 +1,3302 @@ // This file is @generated by prost-build. +/// WARNING: This message is deprecated in favor of `MsgCreateConsumer`. +/// ConsumerAdditionProposal is a governance proposal on the provider chain to +/// spawn a new consumer chain. If it passes, then all validators on the provider +/// chain are expected to validate the consumer chain at spawn time or get +/// slashed. It is recommended that spawn time occurs after the proposal end +/// time. +/// Use MsgConsumerAddition to submit this proposal type. +#[allow(clippy::derive_partial_eq_without_eq)] #[derive(Clone, PartialEq, ::prost::Message)] -pub struct MsgAssignConsumerKey { - /// The chain id of the consumer chain to assign a consensus public key to +pub struct ConsumerAdditionProposal { + /// the title of the proposal #[prost(string, tag = "1")] - pub chain_id: ::prost::alloc::string::String, - /// The validator address on the provider + pub title: ::prost::alloc::string::String, + /// the description of the proposal #[prost(string, tag = "2")] - pub provider_addr: ::prost::alloc::string::String, - /// The consensus public key to use on the consumer. - /// in json string format corresponding to proto-any, ex: - /// `{"@type":"/cosmos.crypto.ed25519.PubKey","key":"Ui5Gf1+mtWUdH8u3xlmzdKID+F3PK0sfXZ73GZ6q6is="}` + pub description: ::prost::alloc::string::String, + /// the proposed chain-id of the new consumer chain, must be different from all + /// other consumer chain ids of the executing provider chain. #[prost(string, tag = "3")] - pub consumer_key: ::prost::alloc::string::String, + pub chain_id: ::prost::alloc::string::String, + /// the proposed initial height of new consumer chain. + /// For a completely new chain, this will be {0,1}. However, it may be + /// different if this is a chain that is converting to a consumer chain. + #[prost(message, optional, tag = "4")] + pub initial_height: ::core::option::Option< + super::super::super::super::ibc::core::client::v1::Height, + >, + /// The hash of the consumer chain genesis state without the consumer CCV + /// module genesis params. It is used for off-chain confirmation of + /// genesis.json validity by validators and other parties. + #[prost(bytes = "vec", tag = "5")] + pub genesis_hash: ::prost::alloc::vec::Vec, + /// The hash of the consumer chain binary that should be run by validators on + /// chain initialization. It is used for off-chain confirmation of binary + /// validity by validators and other parties. + #[prost(bytes = "vec", tag = "6")] + pub binary_hash: ::prost::alloc::vec::Vec, + /// spawn time is the time on the provider chain at which the consumer chain + /// genesis is finalized and all validators will be responsible for starting + /// their consumer chain validator node. + #[prost(message, optional, tag = "7")] + pub spawn_time: ::core::option::Option< + ::tendermint_proto::google::protobuf::Timestamp, + >, + /// Unbonding period for the consumer, + /// which should be smaller than that of the provider in general. + #[prost(message, optional, tag = "8")] + pub unbonding_period: ::core::option::Option< + ::tendermint_proto::google::protobuf::Duration, + >, + /// Sent CCV related IBC packets will timeout after this duration + #[prost(message, optional, tag = "9")] + pub ccv_timeout_period: ::core::option::Option< + ::tendermint_proto::google::protobuf::Duration, + >, + /// Sent transfer related IBC packets will timeout after this duration + #[prost(message, optional, tag = "10")] + pub transfer_timeout_period: ::core::option::Option< + ::tendermint_proto::google::protobuf::Duration, + >, + /// The fraction of tokens allocated to the consumer redistribution address + /// during distribution events. The fraction is a string representing a + /// decimal number. For example "0.75" would represent 75%. + #[prost(string, tag = "11")] + pub consumer_redistribution_fraction: ::prost::alloc::string::String, + /// BlocksPerDistributionTransmission is the number of blocks between + /// ibc-token-transfers from the consumer chain to the provider chain. On + /// sending transmission event, `consumer_redistribution_fraction` of the + /// accumulated tokens are sent to the consumer redistribution address. + #[prost(int64, tag = "12")] + pub blocks_per_distribution_transmission: i64, + /// The number of historical info entries to persist in store. + /// This param is a part of the cosmos sdk staking module. In the case of + /// a ccv enabled consumer chain, the ccv module acts as the staking module. + #[prost(int64, tag = "13")] + pub historical_entries: i64, + /// The ID of a token transfer channel used for the Reward Distribution + /// sub-protocol. If DistributionTransmissionChannel == "", a new transfer + /// channel is created on top of the same connection as the CCV channel. + /// Note that transfer_channel_id is the ID of the channel end on the consumer + /// chain. it is most relevant for chains performing a sovereign to consumer + /// changeover in order to maintain the existing ibc transfer channel + #[prost(string, tag = "14")] + pub distribution_transmission_channel: ::prost::alloc::string::String, + /// Corresponds to the percentage of validators that have to validate the chain under the Top N case. + /// For example, 53 corresponds to a Top 53% chain, meaning that the top 53% provider validators by voting power + /// have to validate the proposed consumer chain. top_N can either be 0 or any value in \[50, 100\]. + /// A chain can join with top_N == 0 as an Opt In chain, or with top_N ∈ \[50, 100\] as a Top N chain. + #[prost(uint32, tag = "15")] + pub top_n: u32, + /// Corresponds to the maximum power (percentage-wise) a validator can have on the consumer chain. For instance, if + /// `validators_power_cap` is set to 32, it means that no validator can have more than 32% of the voting power on the + /// consumer chain. Note that this might not be feasible. For example, think of a consumer chain with only + /// 5 validators and with `validators_power_cap` set to 10%. In such a scenario, at least one validator would need + /// to have more than 20% of the total voting power. Therefore, `validators_power_cap` operates on a best-effort basis. + #[prost(uint32, tag = "16")] + pub validators_power_cap: u32, + /// Corresponds to the maximum number of validators that can validate a consumer chain. + /// Only applicable to Opt In chains. Setting `validator_set_cap` on a Top N chain is a no-op. + #[prost(uint32, tag = "17")] + pub validator_set_cap: u32, + /// Corresponds to a list of provider consensus addresses of validators that are the ONLY ones that can validate + /// the consumer chain. + #[prost(string, repeated, tag = "18")] + pub allowlist: ::prost::alloc::vec::Vec<::prost::alloc::string::String>, + /// Corresponds to a list of provider consensus addresses of validators that CANNOT validate the consumer chain. + #[prost(string, repeated, tag = "19")] + pub denylist: ::prost::alloc::vec::Vec<::prost::alloc::string::String>, + /// Corresponds to the minimal amount of (provider chain) stake required to validate on the consumer chain. + #[prost(uint64, tag = "20")] + pub min_stake: u64, + /// Corresponds to whether inactive validators are allowed to validate the consumer chain. + #[prost(bool, tag = "21")] + pub allow_inactive_vals: bool, } -impl ::prost::Name for MsgAssignConsumerKey { - const NAME: &'static str = "MsgAssignConsumerKey"; +impl ::prost::Name for ConsumerAdditionProposal { + const NAME: &'static str = "ConsumerAdditionProposal"; const PACKAGE: &'static str = "interchain_security.ccv.provider.v1"; fn full_name() -> ::prost::alloc::string::String { - "interchain_security.ccv.provider.v1.MsgAssignConsumerKey".into() + "interchain_security.ccv.provider.v1.ConsumerAdditionProposal".into() } fn type_url() -> ::prost::alloc::string::String { - "/interchain_security.ccv.provider.v1.MsgAssignConsumerKey".into() + "/interchain_security.ccv.provider.v1.ConsumerAdditionProposal".into() } } -#[derive(Clone, Copy, PartialEq, ::prost::Message)] -pub struct MsgAssignConsumerKeyResponse {} -impl ::prost::Name for MsgAssignConsumerKeyResponse { - const NAME: &'static str = "MsgAssignConsumerKeyResponse"; +/// WARNING: This message is deprecated in favor of `MsgRemoveConsumer`. +/// ConsumerRemovalProposal is a governance proposal on the provider chain to +/// remove (and stop) a consumer chain. If it passes, all the consumer chain's +/// state is removed from the provider chain. The outstanding unbonding operation +/// funds are released. +/// Use MsgConsumerRemoval to submit this proposal type. +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct ConsumerRemovalProposal { + /// the title of the proposal + #[prost(string, tag = "1")] + pub title: ::prost::alloc::string::String, + /// the description of the proposal + #[prost(string, tag = "2")] + pub description: ::prost::alloc::string::String, + /// the chain-id of the consumer chain to be stopped + #[prost(string, tag = "3")] + pub chain_id: ::prost::alloc::string::String, + /// the time on the provider chain at which all validators are responsible to + /// stop their consumer chain validator node + #[prost(message, optional, tag = "4")] + pub stop_time: ::core::option::Option< + ::tendermint_proto::google::protobuf::Timestamp, + >, +} +impl ::prost::Name for ConsumerRemovalProposal { + const NAME: &'static str = "ConsumerRemovalProposal"; const PACKAGE: &'static str = "interchain_security.ccv.provider.v1"; fn full_name() -> ::prost::alloc::string::String { - "interchain_security.ccv.provider.v1.MsgAssignConsumerKeyResponse".into() + "interchain_security.ccv.provider.v1.ConsumerRemovalProposal".into() } fn type_url() -> ::prost::alloc::string::String { - "/interchain_security.ccv.provider.v1.MsgAssignConsumerKeyResponse".into() + "/interchain_security.ccv.provider.v1.ConsumerRemovalProposal".into() } } -/// MsgSubmitConsumerMisbehaviour defines a message that reports a light client attack, -/// also known as a misbehaviour, observed on a consumer chain +/// WARNING: This message is deprecated in favor of `MsgUpdateConsumer`. +/// ConsumerModificationProposal is a governance proposal on the provider chain to modify parameters of a running +/// consumer chain. If it passes, the consumer chain's state is updated to take into account the newest params. +#[allow(clippy::derive_partial_eq_without_eq)] #[derive(Clone, PartialEq, ::prost::Message)] -pub struct MsgSubmitConsumerMisbehaviour { +pub struct ConsumerModificationProposal { + /// the title of the proposal #[prost(string, tag = "1")] - pub submitter: ::prost::alloc::string::String, - /// The Misbehaviour of the consumer chain wrapping - /// two conflicting IBC headers - #[prost(message, optional, tag = "2")] - pub misbehaviour: ::core::option::Option< - super::super::super::super::ibc::lightclients::tendermint::v1::Misbehaviour, - >, + pub title: ::prost::alloc::string::String, + /// the description of the proposal + #[prost(string, tag = "2")] + pub description: ::prost::alloc::string::String, + /// the chain-id of the consumer chain to be modified + #[prost(string, tag = "3")] + pub chain_id: ::prost::alloc::string::String, + /// Corresponds to the percentage of validators that have to validate the chain under the Top N case. + /// For example, 53 corresponds to a Top 53% chain, meaning that the top 53% provider validators by voting power + /// have to validate the proposed consumer chain. top_N can either be 0 or any value in \[50, 100\]. + /// A chain can join with top_N == 0 as an Opt In chain, or with top_N ∈ \[50, 100\] as a Top N chain. + #[prost(uint32, tag = "4")] + pub top_n: u32, + /// Corresponds to the maximum power (percentage-wise) a validator can have on the consumer chain. For instance, if + /// `validators_power_cap` is set to 32, it means that no validator can have more than 32% of the voting power on the + /// consumer chain. Note that this might not be feasible. For example, think of a consumer chain with only + /// 5 validators and with `validators_power_cap` set to 10%. In such a scenario, at least one validator would need + /// to have more than 20% of the total voting power. Therefore, `validators_power_cap` operates on a best-effort basis. + #[prost(uint32, tag = "5")] + pub validators_power_cap: u32, + /// Corresponds to the maximum number of validators that can validate a consumer chain. + /// Only applicable to Opt In chains. Setting `validator_set_cap` on a Top N chain is a no-op. + #[prost(uint32, tag = "6")] + pub validator_set_cap: u32, + /// Corresponds to a list of provider consensus addresses of validators that are the ONLY ones that can validate + /// the consumer chain. + #[prost(string, repeated, tag = "7")] + pub allowlist: ::prost::alloc::vec::Vec<::prost::alloc::string::String>, + /// Corresponds to a list of provider consensus addresses of validators that CANNOT validate the consumer chain. + #[prost(string, repeated, tag = "8")] + pub denylist: ::prost::alloc::vec::Vec<::prost::alloc::string::String>, + /// Corresponds to the minimal amount of (provider chain) stake required to validate on the consumer chain. + #[prost(uint64, tag = "9")] + pub min_stake: u64, + /// Corresponds to whether inactive validators are allowed to validate the consumer chain. + #[prost(bool, tag = "10")] + pub allow_inactive_vals: bool, } -impl ::prost::Name for MsgSubmitConsumerMisbehaviour { - const NAME: &'static str = "MsgSubmitConsumerMisbehaviour"; +impl ::prost::Name for ConsumerModificationProposal { + const NAME: &'static str = "ConsumerModificationProposal"; const PACKAGE: &'static str = "interchain_security.ccv.provider.v1"; fn full_name() -> ::prost::alloc::string::String { - "interchain_security.ccv.provider.v1.MsgSubmitConsumerMisbehaviour".into() + "interchain_security.ccv.provider.v1.ConsumerModificationProposal".into() } fn type_url() -> ::prost::alloc::string::String { - "/interchain_security.ccv.provider.v1.MsgSubmitConsumerMisbehaviour".into() + "/interchain_security.ccv.provider.v1.ConsumerModificationProposal".into() } } -#[derive(Clone, Copy, PartialEq, ::prost::Message)] -pub struct MsgSubmitConsumerMisbehaviourResponse {} -impl ::prost::Name for MsgSubmitConsumerMisbehaviourResponse { - const NAME: &'static str = "MsgSubmitConsumerMisbehaviourResponse"; +/// EquivocationProposal is a governance proposal on the provider chain to +/// punish a validator for equivocation on a consumer chain. +/// +/// This type is only used internally to the consumer CCV module. +/// WARNING: This message is deprecated now that equivocations can be submitted +/// and verified automatically on the provider. (see SubmitConsumerDoubleVoting in proto/interchain-security/ccv/provider/v1/tx.proto). +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct EquivocationProposal { + /// the title of the proposal + #[prost(string, tag = "1")] + pub title: ::prost::alloc::string::String, + /// the description of the proposal + #[prost(string, tag = "2")] + pub description: ::prost::alloc::string::String, + /// the list of equivocations that will be processed + #[prost(message, repeated, tag = "3")] + pub equivocations: ::prost::alloc::vec::Vec< + super::super::super::super::cosmos::evidence::v1beta1::Equivocation, + >, +} +impl ::prost::Name for EquivocationProposal { + const NAME: &'static str = "EquivocationProposal"; const PACKAGE: &'static str = "interchain_security.ccv.provider.v1"; fn full_name() -> ::prost::alloc::string::String { - "interchain_security.ccv.provider.v1.MsgSubmitConsumerMisbehaviourResponse" - .into() + "interchain_security.ccv.provider.v1.EquivocationProposal".into() } fn type_url() -> ::prost::alloc::string::String { - "/interchain_security.ccv.provider.v1.MsgSubmitConsumerMisbehaviourResponse" - .into() + "/interchain_security.ccv.provider.v1.EquivocationProposal".into() } } -/// MsgSubmitConsumerDoubleVoting defines a message that reports -/// a double signing infraction observed on a consumer chain +/// ChangeRewardDenomsProposal is a governance proposal on the provider chain to +/// mutate the set of denoms accepted by the provider as rewards. +/// Use MsgChangeRewardDenoms to submit this proposal type. +#[allow(clippy::derive_partial_eq_without_eq)] #[derive(Clone, PartialEq, ::prost::Message)] -pub struct MsgSubmitConsumerDoubleVoting { +pub struct ChangeRewardDenomsProposal { + /// the title of the proposal #[prost(string, tag = "1")] - pub submitter: ::prost::alloc::string::String, - /// The equivocation of the consumer chain wrapping - /// an evidence of a validator that signed two conflicting votes - #[prost(message, optional, tag = "2")] - pub duplicate_vote_evidence: ::core::option::Option< - ::tendermint_proto::types::DuplicateVoteEvidence, - >, - /// The light client header of the infraction block - #[prost(message, optional, tag = "3")] - pub infraction_block_header: ::core::option::Option< - super::super::super::super::ibc::lightclients::tendermint::v1::Header, - >, + pub title: ::prost::alloc::string::String, + /// the description of the proposal + #[prost(string, tag = "2")] + pub description: ::prost::alloc::string::String, + /// the list of consumer reward denoms to add + #[prost(string, repeated, tag = "3")] + pub denoms_to_add: ::prost::alloc::vec::Vec<::prost::alloc::string::String>, + /// the list of consumer reward denoms to remove + #[prost(string, repeated, tag = "4")] + pub denoms_to_remove: ::prost::alloc::vec::Vec<::prost::alloc::string::String>, } -impl ::prost::Name for MsgSubmitConsumerDoubleVoting { - const NAME: &'static str = "MsgSubmitConsumerDoubleVoting"; +impl ::prost::Name for ChangeRewardDenomsProposal { + const NAME: &'static str = "ChangeRewardDenomsProposal"; const PACKAGE: &'static str = "interchain_security.ccv.provider.v1"; fn full_name() -> ::prost::alloc::string::String { - "interchain_security.ccv.provider.v1.MsgSubmitConsumerDoubleVoting".into() + "interchain_security.ccv.provider.v1.ChangeRewardDenomsProposal".into() } fn type_url() -> ::prost::alloc::string::String { - "/interchain_security.ccv.provider.v1.MsgSubmitConsumerDoubleVoting".into() + "/interchain_security.ccv.provider.v1.ChangeRewardDenomsProposal".into() } } -#[derive(Clone, Copy, PartialEq, ::prost::Message)] -pub struct MsgSubmitConsumerDoubleVotingResponse {} -impl ::prost::Name for MsgSubmitConsumerDoubleVotingResponse { - const NAME: &'static str = "MsgSubmitConsumerDoubleVotingResponse"; +/// A persisted queue entry indicating that a slash packet data instance needs to +/// be handled. This type belongs in the "global" queue, to coordinate slash +/// packet handling times between consumers. +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct GlobalSlashEntry { + /// Block time that slash packet was received by provider chain. + /// This field is used for store key iteration ordering. + #[prost(message, optional, tag = "1")] + pub recv_time: ::core::option::Option< + ::tendermint_proto::google::protobuf::Timestamp, + >, + /// The consumer that sent a slash packet. + #[prost(string, tag = "2")] + pub consumer_chain_id: ::prost::alloc::string::String, + /// The IBC sequence number of the recv packet. + /// This field is used in the store key to ensure uniqueness. + #[prost(uint64, tag = "3")] + pub ibc_seq_num: u64, + /// The provider's consensus address of the validator being slashed. + /// This field is used to obtain validator power in HandleThrottleQueues. + /// + /// This field is not used in the store key, but is persisted in value bytes, + /// see QueueGlobalSlashEntry. + #[prost(bytes = "vec", tag = "4")] + pub provider_val_cons_addr: ::prost::alloc::vec::Vec, +} +impl ::prost::Name for GlobalSlashEntry { + const NAME: &'static str = "GlobalSlashEntry"; const PACKAGE: &'static str = "interchain_security.ccv.provider.v1"; fn full_name() -> ::prost::alloc::string::String { - "interchain_security.ccv.provider.v1.MsgSubmitConsumerDoubleVotingResponse" - .into() + "interchain_security.ccv.provider.v1.GlobalSlashEntry".into() } fn type_url() -> ::prost::alloc::string::String { - "/interchain_security.ccv.provider.v1.MsgSubmitConsumerDoubleVotingResponse" - .into() + "/interchain_security.ccv.provider.v1.GlobalSlashEntry".into() } } -/// Generated client implementations. -#[cfg(feature = "client")] -pub mod msg_client { - #![allow(unused_variables, dead_code, missing_docs, clippy::let_unit_value)] - use tonic::codegen::*; - use tonic::codegen::http::Uri; - /// Msg defines the Msg service. - #[derive(Debug, Clone)] - pub struct MsgClient { - inner: tonic::client::Grpc, - } - #[cfg(feature = "transport")] - impl MsgClient { - /// Attempt to create a new client by connecting to a given endpoint. - pub async fn connect(dst: D) -> Result - where - D: TryInto, - D::Error: Into, - { - let conn = tonic::transport::Endpoint::new(dst)?.connect().await?; - Ok(Self::new(conn)) - } +/// Params defines the parameters for CCV Provider module +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Params { + #[prost(message, optional, tag = "1")] + pub template_client: ::core::option::Option< + super::super::super::super::ibc::lightclients::tendermint::v1::ClientState, + >, + /// TrustingPeriodFraction is used to compute the consumer and provider IBC + /// client's TrustingPeriod from the chain defined UnbondingPeriod + #[prost(string, tag = "2")] + pub trusting_period_fraction: ::prost::alloc::string::String, + /// Sent IBC packets will timeout after this duration + #[prost(message, optional, tag = "3")] + pub ccv_timeout_period: ::core::option::Option< + ::tendermint_proto::google::protobuf::Duration, + >, + /// The period for which the slash meter is replenished + #[prost(message, optional, tag = "6")] + pub slash_meter_replenish_period: ::core::option::Option< + ::tendermint_proto::google::protobuf::Duration, + >, + /// The fraction of total voting power that is replenished to the slash meter + /// every replenish period. This param also serves as a maximum fraction of + /// total voting power that the slash meter can hold. + #[prost(string, tag = "7")] + pub slash_meter_replenish_fraction: ::prost::alloc::string::String, + /// The fee required to be paid to add a reward denom + #[prost(message, optional, tag = "9")] + pub consumer_reward_denom_registration_fee: ::core::option::Option< + super::super::super::super::cosmos::base::v1beta1::Coin, + >, + /// The number of blocks that comprise an epoch. + #[prost(int64, tag = "10")] + pub blocks_per_epoch: i64, + /// The number of epochs a validator has to validate a consumer chain in order to start receiving rewards from that chain. + #[prost(int64, tag = "11")] + pub number_of_epochs_to_start_receiving_rewards: i64, + /// The maximal number of validators that will be passed + /// to the consensus engine on the provider. + #[prost(int64, tag = "12")] + pub max_provider_consensus_validators: i64, +} +impl ::prost::Name for Params { + const NAME: &'static str = "Params"; + const PACKAGE: &'static str = "interchain_security.ccv.provider.v1"; + fn full_name() -> ::prost::alloc::string::String { + "interchain_security.ccv.provider.v1.Params".into() } - impl MsgClient - where - T: tonic::client::GrpcService, - T::Error: Into, - T::ResponseBody: Body + std::marker::Send + 'static, - ::Error: Into + std::marker::Send, - { - pub fn new(inner: T) -> Self { - let inner = tonic::client::Grpc::new(inner); - Self { inner } - } - pub fn with_origin(inner: T, origin: Uri) -> Self { - let inner = tonic::client::Grpc::with_origin(inner, origin); - Self { inner } - } - pub fn with_interceptor( - inner: T, - interceptor: F, - ) -> MsgClient> - where - F: tonic::service::Interceptor, - T::ResponseBody: Default, - T: tonic::codegen::Service< - http::Request, - Response = http::Response< - >::ResponseBody, - >, - >, - , - >>::Error: Into + std::marker::Send + std::marker::Sync, - { - MsgClient::new(InterceptedService::new(inner, interceptor)) - } - /// Compress requests with the given encoding. - /// - /// This requires the server to support it otherwise it might respond with an - /// error. - #[must_use] - pub fn send_compressed(mut self, encoding: CompressionEncoding) -> Self { - self.inner = self.inner.send_compressed(encoding); - self - } - /// Enable decompressing responses. - #[must_use] - pub fn accept_compressed(mut self, encoding: CompressionEncoding) -> Self { - self.inner = self.inner.accept_compressed(encoding); - self - } - /// Limits the maximum size of a decoded message. - /// - /// Default: `4MB` - #[must_use] - pub fn max_decoding_message_size(mut self, limit: usize) -> Self { - self.inner = self.inner.max_decoding_message_size(limit); - self - } - /// Limits the maximum size of an encoded message. - /// - /// Default: `usize::MAX` - #[must_use] - pub fn max_encoding_message_size(mut self, limit: usize) -> Self { - self.inner = self.inner.max_encoding_message_size(limit); - self - } - pub async fn assign_consumer_key( - &mut self, - request: impl tonic::IntoRequest, - ) -> std::result::Result< - tonic::Response, - tonic::Status, - > { - self.inner - .ready() - .await - .map_err(|e| { - tonic::Status::new( - tonic::Code::Unknown, - format!("Service was not ready: {}", e.into()), - ) - })?; - let codec = tonic::codec::ProstCodec::default(); - let path = http::uri::PathAndQuery::from_static( - "/interchain_security.ccv.provider.v1.Msg/AssignConsumerKey", - ); - let mut req = request.into_request(); - req.extensions_mut() - .insert( - GrpcMethod::new( - "interchain_security.ccv.provider.v1.Msg", - "AssignConsumerKey", - ), - ); - self.inner.unary(req, path, codec).await - } - pub async fn submit_consumer_misbehaviour( - &mut self, - request: impl tonic::IntoRequest, - ) -> std::result::Result< - tonic::Response, - tonic::Status, - > { - self.inner - .ready() - .await - .map_err(|e| { - tonic::Status::new( - tonic::Code::Unknown, - format!("Service was not ready: {}", e.into()), - ) - })?; - let codec = tonic::codec::ProstCodec::default(); - let path = http::uri::PathAndQuery::from_static( - "/interchain_security.ccv.provider.v1.Msg/SubmitConsumerMisbehaviour", - ); - let mut req = request.into_request(); - req.extensions_mut() - .insert( - GrpcMethod::new( - "interchain_security.ccv.provider.v1.Msg", - "SubmitConsumerMisbehaviour", - ), - ); - self.inner.unary(req, path, codec).await - } - pub async fn submit_consumer_double_voting( - &mut self, - request: impl tonic::IntoRequest, - ) -> std::result::Result< - tonic::Response, - tonic::Status, - > { - self.inner - .ready() - .await - .map_err(|e| { - tonic::Status::new( - tonic::Code::Unknown, - format!("Service was not ready: {}", e.into()), - ) - })?; - let codec = tonic::codec::ProstCodec::default(); - let path = http::uri::PathAndQuery::from_static( - "/interchain_security.ccv.provider.v1.Msg/SubmitConsumerDoubleVoting", - ); - let mut req = request.into_request(); - req.extensions_mut() - .insert( - GrpcMethod::new( - "interchain_security.ccv.provider.v1.Msg", - "SubmitConsumerDoubleVoting", - ), - ); - self.inner.unary(req, path, codec).await - } + fn type_url() -> ::prost::alloc::string::String { + "/interchain_security.ccv.provider.v1.Params".into() } } -/// Generated server implementations. -#[cfg(feature = "server")] -pub mod msg_server { - #![allow(unused_variables, dead_code, missing_docs, clippy::let_unit_value)] - use tonic::codegen::*; - /// Generated trait containing gRPC methods that should be implemented for use with MsgServer. - #[async_trait] - pub trait Msg: std::marker::Send + std::marker::Sync + 'static { - async fn assign_consumer_key( - &self, - request: tonic::Request, - ) -> std::result::Result< - tonic::Response, - tonic::Status, - >; - async fn submit_consumer_misbehaviour( - &self, - request: tonic::Request, - ) -> std::result::Result< - tonic::Response, - tonic::Status, - >; - async fn submit_consumer_double_voting( - &self, - request: tonic::Request, - ) -> std::result::Result< - tonic::Response, - tonic::Status, - >; +/// SlashAcks contains cons addresses of consumer chain validators +/// successfully slashed on the provider chain. +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct SlashAcks { + #[prost(string, repeated, tag = "1")] + pub addresses: ::prost::alloc::vec::Vec<::prost::alloc::string::String>, +} +impl ::prost::Name for SlashAcks { + const NAME: &'static str = "SlashAcks"; + const PACKAGE: &'static str = "interchain_security.ccv.provider.v1"; + fn full_name() -> ::prost::alloc::string::String { + "interchain_security.ccv.provider.v1.SlashAcks".into() } - /// Msg defines the Msg service. - #[derive(Debug)] - pub struct MsgServer { - inner: Arc, - accept_compression_encodings: EnabledCompressionEncodings, - send_compression_encodings: EnabledCompressionEncodings, - max_decoding_message_size: Option, - max_encoding_message_size: Option, + fn type_url() -> ::prost::alloc::string::String { + "/interchain_security.ccv.provider.v1.SlashAcks".into() } - impl MsgServer { - pub fn new(inner: T) -> Self { - Self::from_arc(Arc::new(inner)) - } - pub fn from_arc(inner: Arc) -> Self { - Self { - inner, - accept_compression_encodings: Default::default(), - send_compression_encodings: Default::default(), - max_decoding_message_size: None, - max_encoding_message_size: None, - } - } - pub fn with_interceptor( - inner: T, - interceptor: F, - ) -> InterceptedService - where - F: tonic::service::Interceptor, - { - InterceptedService::new(Self::new(inner), interceptor) - } - /// Enable decompressing requests with the given encoding. - #[must_use] - pub fn accept_compressed(mut self, encoding: CompressionEncoding) -> Self { - self.accept_compression_encodings.enable(encoding); - self - } - /// Compress responses with the given encoding, if the client supports it. - #[must_use] - pub fn send_compressed(mut self, encoding: CompressionEncoding) -> Self { - self.send_compression_encodings.enable(encoding); - self - } - /// Limits the maximum size of a decoded message. - /// - /// Default: `4MB` - #[must_use] - pub fn max_decoding_message_size(mut self, limit: usize) -> Self { - self.max_decoding_message_size = Some(limit); - self - } - /// Limits the maximum size of an encoded message. - /// - /// Default: `usize::MAX` - #[must_use] - pub fn max_encoding_message_size(mut self, limit: usize) -> Self { - self.max_encoding_message_size = Some(limit); - self - } +} +/// ConsumerAdditionProposals holds pending governance proposals on the provider +/// chain to spawn a new chain. +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct ConsumerAdditionProposals { + /// proposals waiting for spawn_time to pass + #[prost(message, repeated, tag = "1")] + pub pending: ::prost::alloc::vec::Vec, +} +impl ::prost::Name for ConsumerAdditionProposals { + const NAME: &'static str = "ConsumerAdditionProposals"; + const PACKAGE: &'static str = "interchain_security.ccv.provider.v1"; + fn full_name() -> ::prost::alloc::string::String { + "interchain_security.ccv.provider.v1.ConsumerAdditionProposals".into() } - impl tonic::codegen::Service> for MsgServer - where - T: Msg, - B: Body + std::marker::Send + 'static, - B::Error: Into + std::marker::Send + 'static, - { - type Response = http::Response; - type Error = std::convert::Infallible; - type Future = BoxFuture; - fn poll_ready( - &mut self, - _cx: &mut Context<'_>, - ) -> Poll> { - Poll::Ready(Ok(())) - } - fn call(&mut self, req: http::Request) -> Self::Future { - match req.uri().path() { - "/interchain_security.ccv.provider.v1.Msg/AssignConsumerKey" => { - #[allow(non_camel_case_types)] - struct AssignConsumerKeySvc(pub Arc); - impl tonic::server::UnaryService - for AssignConsumerKeySvc { - type Response = super::MsgAssignConsumerKeyResponse; - type Future = BoxFuture< - tonic::Response, - tonic::Status, - >; - fn call( - &mut self, - request: tonic::Request, - ) -> Self::Future { - let inner = Arc::clone(&self.0); - let fut = async move { - ::assign_consumer_key(&inner, request).await - }; - Box::pin(fut) - } - } - let accept_compression_encodings = self.accept_compression_encodings; - let send_compression_encodings = self.send_compression_encodings; - let max_decoding_message_size = self.max_decoding_message_size; - let max_encoding_message_size = self.max_encoding_message_size; - let inner = self.inner.clone(); - let fut = async move { - let method = AssignConsumerKeySvc(inner); - let codec = tonic::codec::ProstCodec::default(); - let mut grpc = tonic::server::Grpc::new(codec) - .apply_compression_config( - accept_compression_encodings, - send_compression_encodings, - ) - .apply_max_message_size_config( - max_decoding_message_size, - max_encoding_message_size, - ); - let res = grpc.unary(method, req).await; - Ok(res) - }; - Box::pin(fut) - } - "/interchain_security.ccv.provider.v1.Msg/SubmitConsumerMisbehaviour" => { - #[allow(non_camel_case_types)] - struct SubmitConsumerMisbehaviourSvc(pub Arc); - impl< - T: Msg, - > tonic::server::UnaryService - for SubmitConsumerMisbehaviourSvc { - type Response = super::MsgSubmitConsumerMisbehaviourResponse; - type Future = BoxFuture< - tonic::Response, - tonic::Status, - >; - fn call( - &mut self, - request: tonic::Request, - ) -> Self::Future { - let inner = Arc::clone(&self.0); - let fut = async move { - ::submit_consumer_misbehaviour(&inner, request) - .await - }; - Box::pin(fut) - } - } - let accept_compression_encodings = self.accept_compression_encodings; - let send_compression_encodings = self.send_compression_encodings; - let max_decoding_message_size = self.max_decoding_message_size; - let max_encoding_message_size = self.max_encoding_message_size; - let inner = self.inner.clone(); - let fut = async move { - let method = SubmitConsumerMisbehaviourSvc(inner); - let codec = tonic::codec::ProstCodec::default(); - let mut grpc = tonic::server::Grpc::new(codec) - .apply_compression_config( - accept_compression_encodings, - send_compression_encodings, - ) - .apply_max_message_size_config( - max_decoding_message_size, - max_encoding_message_size, - ); - let res = grpc.unary(method, req).await; - Ok(res) - }; - Box::pin(fut) - } - "/interchain_security.ccv.provider.v1.Msg/SubmitConsumerDoubleVoting" => { - #[allow(non_camel_case_types)] - struct SubmitConsumerDoubleVotingSvc(pub Arc); - impl< - T: Msg, - > tonic::server::UnaryService - for SubmitConsumerDoubleVotingSvc { - type Response = super::MsgSubmitConsumerDoubleVotingResponse; - type Future = BoxFuture< - tonic::Response, - tonic::Status, - >; - fn call( - &mut self, - request: tonic::Request, - ) -> Self::Future { - let inner = Arc::clone(&self.0); - let fut = async move { - ::submit_consumer_double_voting(&inner, request) - .await - }; - Box::pin(fut) - } - } - let accept_compression_encodings = self.accept_compression_encodings; - let send_compression_encodings = self.send_compression_encodings; - let max_decoding_message_size = self.max_decoding_message_size; - let max_encoding_message_size = self.max_encoding_message_size; - let inner = self.inner.clone(); - let fut = async move { - let method = SubmitConsumerDoubleVotingSvc(inner); - let codec = tonic::codec::ProstCodec::default(); - let mut grpc = tonic::server::Grpc::new(codec) - .apply_compression_config( - accept_compression_encodings, - send_compression_encodings, - ) - .apply_max_message_size_config( - max_decoding_message_size, - max_encoding_message_size, - ); - let res = grpc.unary(method, req).await; - Ok(res) - }; - Box::pin(fut) - } - _ => { - Box::pin(async move { - Ok( - http::Response::builder() - .status(200) - .header("grpc-status", tonic::Code::Unimplemented as i32) - .header( - http::header::CONTENT_TYPE, - tonic::metadata::GRPC_CONTENT_TYPE, - ) - .body(empty_body()) - .unwrap(), - ) - }) - } - } - } + fn type_url() -> ::prost::alloc::string::String { + "/interchain_security.ccv.provider.v1.ConsumerAdditionProposals".into() } - impl Clone for MsgServer { - fn clone(&self) -> Self { - let inner = self.inner.clone(); - Self { - inner, - accept_compression_encodings: self.accept_compression_encodings, - send_compression_encodings: self.send_compression_encodings, - max_decoding_message_size: self.max_decoding_message_size, - max_encoding_message_size: self.max_encoding_message_size, - } - } +} +/// ConsumerRemovalProposals holds pending governance proposals on the provider +/// chain to remove (and stop) a consumer chain. +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct ConsumerRemovalProposals { + /// proposals waiting for stop_time to pass + #[prost(message, repeated, tag = "1")] + pub pending: ::prost::alloc::vec::Vec, +} +impl ::prost::Name for ConsumerRemovalProposals { + const NAME: &'static str = "ConsumerRemovalProposals"; + const PACKAGE: &'static str = "interchain_security.ccv.provider.v1"; + fn full_name() -> ::prost::alloc::string::String { + "interchain_security.ccv.provider.v1.ConsumerRemovalProposals".into() } - /// Generated gRPC service name - pub const SERVICE_NAME: &str = "interchain_security.ccv.provider.v1.Msg"; - impl tonic::server::NamedService for MsgServer { - const NAME: &'static str = SERVICE_NAME; + fn type_url() -> ::prost::alloc::string::String { + "/interchain_security.ccv.provider.v1.ConsumerRemovalProposals".into() } } -/// ConsumerAdditionProposal is a governance proposal on the provider chain to -/// spawn a new consumer chain. If it passes, then all validators on the provider -/// chain are expected to validate the consumer chain at spawn time or get -/// slashed. It is recommended that spawn time occurs after the proposal end -/// time. +/// AddressList contains a list of consensus addresses +#[allow(clippy::derive_partial_eq_without_eq)] #[derive(Clone, PartialEq, ::prost::Message)] -pub struct ConsumerAdditionProposal { - /// the title of the proposal +pub struct AddressList { + #[prost(bytes = "vec", repeated, tag = "1")] + pub addresses: ::prost::alloc::vec::Vec<::prost::alloc::vec::Vec>, +} +impl ::prost::Name for AddressList { + const NAME: &'static str = "AddressList"; + const PACKAGE: &'static str = "interchain_security.ccv.provider.v1"; + fn full_name() -> ::prost::alloc::string::String { + "interchain_security.ccv.provider.v1.AddressList".into() + } + fn type_url() -> ::prost::alloc::string::String { + "/interchain_security.ccv.provider.v1.AddressList".into() + } +} +/// WARNING: This message is deprecated and is not used. +/// ChannelToChain is used to map a CCV channel ID to the consumer chainID +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct ChannelToChain { #[prost(string, tag = "1")] - pub title: ::prost::alloc::string::String, - /// the description of the proposal + pub channel_id: ::prost::alloc::string::String, + #[prost(string, tag = "2")] + pub chain_id: ::prost::alloc::string::String, +} +impl ::prost::Name for ChannelToChain { + const NAME: &'static str = "ChannelToChain"; + const PACKAGE: &'static str = "interchain_security.ccv.provider.v1"; + fn full_name() -> ::prost::alloc::string::String { + "interchain_security.ccv.provider.v1.ChannelToChain".into() + } + fn type_url() -> ::prost::alloc::string::String { + "/interchain_security.ccv.provider.v1.ChannelToChain".into() + } +} +/// ValidatorSetChangePackets is a pb list of ccv.ValidatorSetChangePacketData. +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct ValidatorSetChangePackets { + #[prost(message, repeated, tag = "1")] + pub list: ::prost::alloc::vec::Vec, +} +impl ::prost::Name for ValidatorSetChangePackets { + const NAME: &'static str = "ValidatorSetChangePackets"; + const PACKAGE: &'static str = "interchain_security.ccv.provider.v1"; + fn full_name() -> ::prost::alloc::string::String { + "interchain_security.ccv.provider.v1.ValidatorSetChangePackets".into() + } + fn type_url() -> ::prost::alloc::string::String { + "/interchain_security.ccv.provider.v1.ValidatorSetChangePackets".into() + } +} +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct KeyAssignmentReplacement { + #[prost(bytes = "vec", tag = "1")] + pub provider_addr: ::prost::alloc::vec::Vec, + #[prost(message, optional, tag = "2")] + pub prev_c_key: ::core::option::Option<::tendermint_proto::crypto::PublicKey>, + #[prost(int64, tag = "3")] + pub power: i64, +} +impl ::prost::Name for KeyAssignmentReplacement { + const NAME: &'static str = "KeyAssignmentReplacement"; + const PACKAGE: &'static str = "interchain_security.ccv.provider.v1"; + fn full_name() -> ::prost::alloc::string::String { + "interchain_security.ccv.provider.v1.KeyAssignmentReplacement".into() + } + fn type_url() -> ::prost::alloc::string::String { + "/interchain_security.ccv.provider.v1.KeyAssignmentReplacement".into() + } +} +/// Used to serialize the ValidatorConsumerPubKey index from key assignment +/// ValidatorConsumerPubKey: (chainID, providerAddr consAddr) -> consumerKey +/// tmprotocrypto.PublicKey +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct ValidatorConsumerPubKey { + #[prost(string, tag = "1")] + pub chain_id: ::prost::alloc::string::String, + #[prost(bytes = "vec", tag = "2")] + pub provider_addr: ::prost::alloc::vec::Vec, + #[prost(message, optional, tag = "3")] + pub consumer_key: ::core::option::Option<::tendermint_proto::crypto::PublicKey>, +} +impl ::prost::Name for ValidatorConsumerPubKey { + const NAME: &'static str = "ValidatorConsumerPubKey"; + const PACKAGE: &'static str = "interchain_security.ccv.provider.v1"; + fn full_name() -> ::prost::alloc::string::String { + "interchain_security.ccv.provider.v1.ValidatorConsumerPubKey".into() + } + fn type_url() -> ::prost::alloc::string::String { + "/interchain_security.ccv.provider.v1.ValidatorConsumerPubKey".into() + } +} +/// Used to serialize the ValidatorConsumerAddr index from key assignment +/// ValidatorByConsumerAddr: (chainID, consumerAddr consAddr) -> providerAddr +/// consAddr +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct ValidatorByConsumerAddr { + #[prost(string, tag = "1")] + pub chain_id: ::prost::alloc::string::String, + #[prost(bytes = "vec", tag = "2")] + pub consumer_addr: ::prost::alloc::vec::Vec, + #[prost(bytes = "vec", tag = "3")] + pub provider_addr: ::prost::alloc::vec::Vec, +} +impl ::prost::Name for ValidatorByConsumerAddr { + const NAME: &'static str = "ValidatorByConsumerAddr"; + const PACKAGE: &'static str = "interchain_security.ccv.provider.v1"; + fn full_name() -> ::prost::alloc::string::String { + "interchain_security.ccv.provider.v1.ValidatorByConsumerAddr".into() + } + fn type_url() -> ::prost::alloc::string::String { + "/interchain_security.ccv.provider.v1.ValidatorByConsumerAddr".into() + } +} +/// Used to serialize the ConsumerAddrsToPruneV2 index from key assignment +/// ConsumerAddrsToPruneV2: (chainID, pruneTs time.Time) -> consumerAddrs AddressList +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct ConsumerAddrsToPruneV2 { + #[prost(string, tag = "1")] + pub chain_id: ::prost::alloc::string::String, + #[prost(message, optional, tag = "2")] + pub prune_ts: ::core::option::Option< + ::tendermint_proto::google::protobuf::Timestamp, + >, + #[prost(message, optional, tag = "3")] + pub consumer_addrs: ::core::option::Option, +} +impl ::prost::Name for ConsumerAddrsToPruneV2 { + const NAME: &'static str = "ConsumerAddrsToPruneV2"; + const PACKAGE: &'static str = "interchain_security.ccv.provider.v1"; + fn full_name() -> ::prost::alloc::string::String { + "interchain_security.ccv.provider.v1.ConsumerAddrsToPruneV2".into() + } + fn type_url() -> ::prost::alloc::string::String { + "/interchain_security.ccv.provider.v1.ConsumerAddrsToPruneV2".into() + } +} +/// ConsensusValidator is used to express a validator that +/// should be validating on a chain. +/// It contains relevant info for +/// a validator that is expected to validate on +/// either the provider or a consumer chain. +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct ConsensusValidator { + /// validator's consensus address on the provider chain + #[prost(bytes = "vec", tag = "1")] + pub provider_cons_addr: ::prost::alloc::vec::Vec, + /// voting power the validator has during this epoch + #[prost(int64, tag = "2")] + pub power: i64, + /// public key the validator uses on the consumer chain during this epoch + #[prost(message, optional, tag = "3")] + pub public_key: ::core::option::Option<::tendermint_proto::crypto::PublicKey>, + /// height the validator had when it FIRST became a consumer validator + /// If a validator becomes a consumer validator at height `H` and is continuously a consumer validator for all the upcoming + /// epochs, then the height of the validator SHOULD remain `H`. This height only resets to a different height if a validator + /// stops being a consumer validator during an epoch and later becomes again a consumer validator. + #[prost(int64, tag = "4")] + pub join_height: i64, +} +impl ::prost::Name for ConsensusValidator { + const NAME: &'static str = "ConsensusValidator"; + const PACKAGE: &'static str = "interchain_security.ccv.provider.v1"; + fn full_name() -> ::prost::alloc::string::String { + "interchain_security.ccv.provider.v1.ConsensusValidator".into() + } + fn type_url() -> ::prost::alloc::string::String { + "/interchain_security.ccv.provider.v1.ConsensusValidator".into() + } +} +/// ConsumerRewardsAllocation stores the rewards allocated by a consumer chain +/// to the consumer rewards pool. It is used to allocate the tokens to the consumer +/// opted-in validators and the community pool during BeginBlock. +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct ConsumerRewardsAllocation { + #[prost(message, repeated, tag = "1")] + pub rewards: ::prost::alloc::vec::Vec< + super::super::super::super::cosmos::base::v1beta1::DecCoin, + >, +} +impl ::prost::Name for ConsumerRewardsAllocation { + const NAME: &'static str = "ConsumerRewardsAllocation"; + const PACKAGE: &'static str = "interchain_security.ccv.provider.v1"; + fn full_name() -> ::prost::alloc::string::String { + "interchain_security.ccv.provider.v1.ConsumerRewardsAllocation".into() + } + fn type_url() -> ::prost::alloc::string::String { + "/interchain_security.ccv.provider.v1.ConsumerRewardsAllocation".into() + } +} +/// ConsumerMetadata contains general information about the registered chain +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct ConsumerMetadata { + /// the name of the chain + #[prost(string, tag = "1")] + pub name: ::prost::alloc::string::String, + /// the description of the chain #[prost(string, tag = "2")] pub description: ::prost::alloc::string::String, - /// the proposed chain-id of the new consumer chain, must be different from all - /// other consumer chain ids of the executing provider chain. + /// the metadata (e.g., GitHub repository URL) of the chain #[prost(string, tag = "3")] - pub chain_id: ::prost::alloc::string::String, + pub metadata: ::prost::alloc::string::String, +} +impl ::prost::Name for ConsumerMetadata { + const NAME: &'static str = "ConsumerMetadata"; + const PACKAGE: &'static str = "interchain_security.ccv.provider.v1"; + fn full_name() -> ::prost::alloc::string::String { + "interchain_security.ccv.provider.v1.ConsumerMetadata".into() + } + fn type_url() -> ::prost::alloc::string::String { + "/interchain_security.ccv.provider.v1.ConsumerMetadata".into() + } +} +/// ConsumerInitializationParameters are the parameters needed to launch a chain +/// +/// ---------- ---------- ---------- +/// Following fields are used when the consumer chain launches and are not needed by the provider afterwards. +/// ---------- ---------- ---------- +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct ConsumerInitializationParameters { /// the proposed initial height of new consumer chain. /// For a completely new chain, this will be {0,1}. However, it may be /// different if this is a chain that is converting to a consumer chain. - #[prost(message, optional, tag = "4")] + #[prost(message, optional, tag = "1")] pub initial_height: ::core::option::Option< super::super::super::super::ibc::core::client::v1::Height, >, /// The hash of the consumer chain genesis state without the consumer CCV /// module genesis params. It is used for off-chain confirmation of /// genesis.json validity by validators and other parties. - #[prost(bytes = "vec", tag = "5")] + #[prost(bytes = "vec", tag = "2")] pub genesis_hash: ::prost::alloc::vec::Vec, /// The hash of the consumer chain binary that should be run by validators on /// chain initialization. It is used for off-chain confirmation of binary /// validity by validators and other parties. - #[prost(bytes = "vec", tag = "6")] + #[prost(bytes = "vec", tag = "3")] pub binary_hash: ::prost::alloc::vec::Vec, /// spawn time is the time on the provider chain at which the consumer chain /// genesis is finalized and all validators will be responsible for starting /// their consumer chain validator node. - #[prost(message, optional, tag = "7")] + #[prost(message, optional, tag = "4")] pub spawn_time: ::core::option::Option< ::tendermint_proto::google::protobuf::Timestamp, >, /// Unbonding period for the consumer, /// which should be smaller than that of the provider in general. - #[prost(message, optional, tag = "8")] + #[prost(message, optional, tag = "5")] pub unbonding_period: ::core::option::Option< ::tendermint_proto::google::protobuf::Duration, >, /// Sent CCV related IBC packets will timeout after this duration - #[prost(message, optional, tag = "9")] + #[prost(message, optional, tag = "6")] pub ccv_timeout_period: ::core::option::Option< ::tendermint_proto::google::protobuf::Duration, >, /// Sent transfer related IBC packets will timeout after this duration - #[prost(message, optional, tag = "10")] + #[prost(message, optional, tag = "7")] pub transfer_timeout_period: ::core::option::Option< ::tendermint_proto::google::protobuf::Duration, >, /// The fraction of tokens allocated to the consumer redistribution address /// during distribution events. The fraction is a string representing a /// decimal number. For example "0.75" would represent 75%. - #[prost(string, tag = "11")] + #[prost(string, tag = "8")] pub consumer_redistribution_fraction: ::prost::alloc::string::String, /// BlocksPerDistributionTransmission is the number of blocks between /// ibc-token-transfers from the consumer chain to the provider chain. On /// sending transmission event, `consumer_redistribution_fraction` of the /// accumulated tokens are sent to the consumer redistribution address. - #[prost(int64, tag = "12")] + #[prost(int64, tag = "9")] pub blocks_per_distribution_transmission: i64, /// The number of historical info entries to persist in store. /// This param is a part of the cosmos sdk staking module. In the case of /// a ccv enabled consumer chain, the ccv module acts as the staking module. - #[prost(int64, tag = "13")] + #[prost(int64, tag = "10")] pub historical_entries: i64, /// The ID of a token transfer channel used for the Reward Distribution /// sub-protocol. If DistributionTransmissionChannel == "", a new transfer /// channel is created on top of the same connection as the CCV channel. /// Note that transfer_channel_id is the ID of the channel end on the consumer /// chain. it is most relevant for chains performing a sovereign to consumer - /// changeover in order to maintan the existing ibc transfer channel - #[prost(string, tag = "14")] + /// changeover in order to maintain the existing ibc transfer channel + #[prost(string, tag = "11")] pub distribution_transmission_channel: ::prost::alloc::string::String, } -impl ::prost::Name for ConsumerAdditionProposal { - const NAME: &'static str = "ConsumerAdditionProposal"; +impl ::prost::Name for ConsumerInitializationParameters { + const NAME: &'static str = "ConsumerInitializationParameters"; const PACKAGE: &'static str = "interchain_security.ccv.provider.v1"; fn full_name() -> ::prost::alloc::string::String { - "interchain_security.ccv.provider.v1.ConsumerAdditionProposal".into() + "interchain_security.ccv.provider.v1.ConsumerInitializationParameters".into() } fn type_url() -> ::prost::alloc::string::String { - "/interchain_security.ccv.provider.v1.ConsumerAdditionProposal".into() + "/interchain_security.ccv.provider.v1.ConsumerInitializationParameters".into() } } -/// ConsumerRemovalProposal is a governance proposal on the provider chain to -/// remove (and stop) a consumer chain. If it passes, all the consumer chain's -/// state is removed from the provider chain. The outstanding unbonding operation -/// funds are released. +/// PowerShapingParameters contains parameters that shape the validator set that we send to the consumer chain +#[allow(clippy::derive_partial_eq_without_eq)] #[derive(Clone, PartialEq, ::prost::Message)] -pub struct ConsumerRemovalProposal { - /// the title of the proposal - #[prost(string, tag = "1")] - pub title: ::prost::alloc::string::String, - /// the description of the proposal - #[prost(string, tag = "2")] - pub description: ::prost::alloc::string::String, - /// the chain-id of the consumer chain to be stopped - #[prost(string, tag = "3")] - pub chain_id: ::prost::alloc::string::String, - /// the time on the provider chain at which all validators are responsible to - /// stop their consumer chain validator node - #[prost(message, optional, tag = "4")] - pub stop_time: ::core::option::Option< - ::tendermint_proto::google::protobuf::Timestamp, - >, +pub struct PowerShapingParameters { + /// Corresponds to the percentage of validators that have to validate the chain under the Top N case. + /// For example, 53 corresponds to a Top 53% chain, meaning that the top 53% provider validators by voting power + /// have to validate the proposed consumer chain. top_N can either be 0 or any value in \[50, 100\]. + /// A chain can join with top_N == 0 as an Opt In chain, or with top_N ∈ \[50, 100\] as a Top N chain. + #[prost(uint32, tag = "1")] + pub top_n: u32, + /// Corresponds to the maximum power (percentage-wise) a validator can have on the consumer chain. For instance, if + /// `validators_power_cap` is set to 32, it means that no validator can have more than 32% of the voting power on the + /// consumer chain. Note that this might not be feasible. For example, think of a consumer chain with only + /// 5 validators and with `validators_power_cap` set to 10%. In such a scenario, at least one validator would need + /// to have more than 20% of the total voting power. Therefore, `validators_power_cap` operates on a best-effort basis. + #[prost(uint32, tag = "2")] + pub validators_power_cap: u32, + /// Corresponds to the maximum number of validators that can validate a consumer chain. + /// Only applicable to Opt In chains. Setting `validator_set_cap` on a Top N chain is a no-op. + #[prost(uint32, tag = "3")] + pub validator_set_cap: u32, + /// corresponds to a list of provider consensus addresses of validators that are the ONLY ones that can validate the consumer chain + #[prost(string, repeated, tag = "4")] + pub allowlist: ::prost::alloc::vec::Vec<::prost::alloc::string::String>, + /// corresponds to a list of provider consensus addresses of validators that CANNOT validate the consumer chain + #[prost(string, repeated, tag = "5")] + pub denylist: ::prost::alloc::vec::Vec<::prost::alloc::string::String>, + /// Corresponds to the minimal amount of (provider chain) stake required to validate on the consumer chain. + #[prost(uint64, tag = "6")] + pub min_stake: u64, + /// Corresponds to whether inactive validators are allowed to validate the consumer chain. + #[prost(bool, tag = "7")] + pub allow_inactive_vals: bool, } -impl ::prost::Name for ConsumerRemovalProposal { - const NAME: &'static str = "ConsumerRemovalProposal"; +impl ::prost::Name for PowerShapingParameters { + const NAME: &'static str = "PowerShapingParameters"; const PACKAGE: &'static str = "interchain_security.ccv.provider.v1"; fn full_name() -> ::prost::alloc::string::String { - "interchain_security.ccv.provider.v1.ConsumerRemovalProposal".into() + "interchain_security.ccv.provider.v1.PowerShapingParameters".into() } fn type_url() -> ::prost::alloc::string::String { - "/interchain_security.ccv.provider.v1.ConsumerRemovalProposal".into() + "/interchain_security.ccv.provider.v1.PowerShapingParameters".into() } } -/// ChangeRewardDenomsProposal is a governance proposal on the provider chain to -/// mutate the set of denoms accepted by the provider as rewards. +/// ConsumerIds contains consumer ids of chains +/// Used so we can easily (de)serialize slices of strings +#[allow(clippy::derive_partial_eq_without_eq)] #[derive(Clone, PartialEq, ::prost::Message)] -pub struct ChangeRewardDenomsProposal { - /// the title of the proposal - #[prost(string, tag = "1")] - pub title: ::prost::alloc::string::String, - /// the description of the proposal - #[prost(string, tag = "2")] - pub description: ::prost::alloc::string::String, - /// the list of consumer reward denoms to add - #[prost(string, repeated, tag = "3")] - pub denoms_to_add: ::prost::alloc::vec::Vec<::prost::alloc::string::String>, - /// the list of consumer reward denoms to remove - #[prost(string, repeated, tag = "4")] - pub denoms_to_remove: ::prost::alloc::vec::Vec<::prost::alloc::string::String>, +pub struct ConsumerIds { + #[prost(string, repeated, tag = "1")] + pub ids: ::prost::alloc::vec::Vec<::prost::alloc::string::String>, } -impl ::prost::Name for ChangeRewardDenomsProposal { - const NAME: &'static str = "ChangeRewardDenomsProposal"; +impl ::prost::Name for ConsumerIds { + const NAME: &'static str = "ConsumerIds"; const PACKAGE: &'static str = "interchain_security.ccv.provider.v1"; fn full_name() -> ::prost::alloc::string::String { - "interchain_security.ccv.provider.v1.ChangeRewardDenomsProposal".into() + "interchain_security.ccv.provider.v1.ConsumerIds".into() } fn type_url() -> ::prost::alloc::string::String { - "/interchain_security.ccv.provider.v1.ChangeRewardDenomsProposal".into() + "/interchain_security.ccv.provider.v1.ConsumerIds".into() } } -/// A persisted queue entry indicating that a slash packet data instance needs to -/// be handled. This type belongs in the "global" queue, to coordinate slash -/// packet handling times between consumers. +/// ConsumerPhase indicates the phases of a consumer chain according to ADR 019 +#[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)] +#[repr(i32)] +pub enum ConsumerPhase { + /// UNSPECIFIED defines an empty phase. + Unspecified = 0, + /// REGISTERED defines the phase in which a consumer chain has been assigned a unique consumer id. + /// A chain in this phase cannot yet launch. + Registered = 1, + /// INITIALIZED defines the phase in which a consumer chain has set all the needed parameters to launch but + /// has not yet launched (e.g., because the `spawnTime` of the consumer chain has not yet been reached). + Initialized = 2, + /// LAUNCHED defines the phase in which a consumer chain is running and consuming a subset of the validator + /// set of the provider. + Launched = 3, + /// STOPPED defines the phase in which a previously-launched chain has stopped. + Stopped = 4, + /// DELETED defines the phase in which the state of a stopped chain has been deleted. + Deleted = 5, +} +impl ConsumerPhase { + /// String value of the enum field names used in the ProtoBuf definition. + /// + /// The values are not transformed in any way and thus are considered stable + /// (if the ProtoBuf definition does not change) and safe for programmatic use. + pub fn as_str_name(&self) -> &'static str { + match self { + ConsumerPhase::Unspecified => "CONSUMER_PHASE_UNSPECIFIED", + ConsumerPhase::Registered => "CONSUMER_PHASE_REGISTERED", + ConsumerPhase::Initialized => "CONSUMER_PHASE_INITIALIZED", + ConsumerPhase::Launched => "CONSUMER_PHASE_LAUNCHED", + ConsumerPhase::Stopped => "CONSUMER_PHASE_STOPPED", + ConsumerPhase::Deleted => "CONSUMER_PHASE_DELETED", + } + } + /// Creates an enum from field names used in the ProtoBuf definition. + pub fn from_str_name(value: &str) -> ::core::option::Option { + match value { + "CONSUMER_PHASE_UNSPECIFIED" => Some(Self::Unspecified), + "CONSUMER_PHASE_REGISTERED" => Some(Self::Registered), + "CONSUMER_PHASE_INITIALIZED" => Some(Self::Initialized), + "CONSUMER_PHASE_LAUNCHED" => Some(Self::Launched), + "CONSUMER_PHASE_STOPPED" => Some(Self::Stopped), + "CONSUMER_PHASE_DELETED" => Some(Self::Deleted), + _ => None, + } + } +} +#[allow(clippy::derive_partial_eq_without_eq)] #[derive(Clone, PartialEq, ::prost::Message)] -pub struct GlobalSlashEntry { - /// Block time that slash packet was received by provider chain. - /// This field is used for store key iteration ordering. - #[prost(message, optional, tag = "1")] - pub recv_time: ::core::option::Option< - ::tendermint_proto::google::protobuf::Timestamp, - >, - /// The consumer that sent a slash packet. +pub struct MsgAssignConsumerKey { + /// \[DEPRECATED\] use `consumer_id` instead + #[deprecated] + #[prost(string, tag = "1")] + pub chain_id: ::prost::alloc::string::String, + /// The validator address on the provider #[prost(string, tag = "2")] - pub consumer_chain_id: ::prost::alloc::string::String, - /// The IBC sequence number of the recv packet. - /// This field is used in the store key to ensure uniqueness. - #[prost(uint64, tag = "3")] - pub ibc_seq_num: u64, - /// The provider's consensus address of the validator being slashed. - /// This field is used to obtain validator power in HandleThrottleQueues. - /// - /// This field is not used in the store key, but is persisted in value bytes, - /// see QueueGlobalSlashEntry. - #[prost(bytes = "vec", tag = "4")] - pub provider_val_cons_addr: ::prost::alloc::vec::Vec, + pub provider_addr: ::prost::alloc::string::String, + /// The consensus public key to use on the consumer. + /// in json string format corresponding to proto-any, ex: + /// `{"@type":"/cosmos.crypto.ed25519.PubKey","key":"Ui5Gf1+mtWUdH8u3xlmzdKID+F3PK0sfXZ73GZ6q6is="}` + #[prost(string, tag = "3")] + pub consumer_key: ::prost::alloc::string::String, + #[prost(string, tag = "4")] + pub signer: ::prost::alloc::string::String, + /// the consumer id of the consumer chain to assign a consensus public key to + #[prost(string, tag = "5")] + pub consumer_id: ::prost::alloc::string::String, } -impl ::prost::Name for GlobalSlashEntry { - const NAME: &'static str = "GlobalSlashEntry"; +impl ::prost::Name for MsgAssignConsumerKey { + const NAME: &'static str = "MsgAssignConsumerKey"; const PACKAGE: &'static str = "interchain_security.ccv.provider.v1"; fn full_name() -> ::prost::alloc::string::String { - "interchain_security.ccv.provider.v1.GlobalSlashEntry".into() + "interchain_security.ccv.provider.v1.MsgAssignConsumerKey".into() } fn type_url() -> ::prost::alloc::string::String { - "/interchain_security.ccv.provider.v1.GlobalSlashEntry".into() + "/interchain_security.ccv.provider.v1.MsgAssignConsumerKey".into() } } -/// Params defines the parameters for CCV Provider module +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, Copy, PartialEq, ::prost::Message)] +pub struct MsgAssignConsumerKeyResponse {} +impl ::prost::Name for MsgAssignConsumerKeyResponse { + const NAME: &'static str = "MsgAssignConsumerKeyResponse"; + const PACKAGE: &'static str = "interchain_security.ccv.provider.v1"; + fn full_name() -> ::prost::alloc::string::String { + "interchain_security.ccv.provider.v1.MsgAssignConsumerKeyResponse".into() + } + fn type_url() -> ::prost::alloc::string::String { + "/interchain_security.ccv.provider.v1.MsgAssignConsumerKeyResponse".into() + } +} +/// MsgSubmitConsumerMisbehaviour defines a message that reports a light client attack, +/// also known as a misbehaviour, observed on a consumer chain +#[allow(clippy::derive_partial_eq_without_eq)] #[derive(Clone, PartialEq, ::prost::Message)] -pub struct Params { - #[prost(message, optional, tag = "1")] - pub template_client: ::core::option::Option< - super::super::super::super::ibc::lightclients::tendermint::v1::ClientState, +pub struct MsgSubmitConsumerMisbehaviour { + #[prost(string, tag = "1")] + pub submitter: ::prost::alloc::string::String, + /// The Misbehaviour of the consumer chain wrapping + /// two conflicting IBC headers + #[prost(message, optional, tag = "2")] + pub misbehaviour: ::core::option::Option< + super::super::super::super::ibc::lightclients::tendermint::v1::Misbehaviour, >, - /// TrustingPeriodFraction is used to compute the consumer and provider IBC - /// client's TrustingPeriod from the chain defined UnbondingPeriod - #[prost(string, tag = "2")] - pub trusting_period_fraction: ::prost::alloc::string::String, - /// Sent IBC packets will timeout after this duration + /// the consumer id of the consumer chain where the misbehaviour occurred + #[prost(string, tag = "3")] + pub consumer_id: ::prost::alloc::string::String, +} +impl ::prost::Name for MsgSubmitConsumerMisbehaviour { + const NAME: &'static str = "MsgSubmitConsumerMisbehaviour"; + const PACKAGE: &'static str = "interchain_security.ccv.provider.v1"; + fn full_name() -> ::prost::alloc::string::String { + "interchain_security.ccv.provider.v1.MsgSubmitConsumerMisbehaviour".into() + } + fn type_url() -> ::prost::alloc::string::String { + "/interchain_security.ccv.provider.v1.MsgSubmitConsumerMisbehaviour".into() + } +} +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, Copy, PartialEq, ::prost::Message)] +pub struct MsgSubmitConsumerMisbehaviourResponse {} +impl ::prost::Name for MsgSubmitConsumerMisbehaviourResponse { + const NAME: &'static str = "MsgSubmitConsumerMisbehaviourResponse"; + const PACKAGE: &'static str = "interchain_security.ccv.provider.v1"; + fn full_name() -> ::prost::alloc::string::String { + "interchain_security.ccv.provider.v1.MsgSubmitConsumerMisbehaviourResponse" + .into() + } + fn type_url() -> ::prost::alloc::string::String { + "/interchain_security.ccv.provider.v1.MsgSubmitConsumerMisbehaviourResponse" + .into() + } +} +/// MsgSubmitConsumerDoubleVoting defines a message that reports +/// a double signing infraction observed on a consumer chain +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct MsgSubmitConsumerDoubleVoting { + #[prost(string, tag = "1")] + pub submitter: ::prost::alloc::string::String, + /// The equivocation of the consumer chain wrapping + /// an evidence of a validator that signed two conflicting votes + #[prost(message, optional, tag = "2")] + pub duplicate_vote_evidence: ::core::option::Option< + ::tendermint_proto::types::DuplicateVoteEvidence, + >, + /// The light client header of the infraction block #[prost(message, optional, tag = "3")] - pub ccv_timeout_period: ::core::option::Option< - ::tendermint_proto::google::protobuf::Duration, + pub infraction_block_header: ::core::option::Option< + super::super::super::super::ibc::lightclients::tendermint::v1::Header, >, - /// The channel initialization (IBC channel opening handshake) will timeout - /// after this duration - #[prost(message, optional, tag = "4")] - pub init_timeout_period: ::core::option::Option< - ::tendermint_proto::google::protobuf::Duration, + /// the consumer id of the consumer chain where the double-voting took place + #[prost(string, tag = "4")] + pub consumer_id: ::prost::alloc::string::String, +} +impl ::prost::Name for MsgSubmitConsumerDoubleVoting { + const NAME: &'static str = "MsgSubmitConsumerDoubleVoting"; + const PACKAGE: &'static str = "interchain_security.ccv.provider.v1"; + fn full_name() -> ::prost::alloc::string::String { + "interchain_security.ccv.provider.v1.MsgSubmitConsumerDoubleVoting".into() + } + fn type_url() -> ::prost::alloc::string::String { + "/interchain_security.ccv.provider.v1.MsgSubmitConsumerDoubleVoting".into() + } +} +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, Copy, PartialEq, ::prost::Message)] +pub struct MsgSubmitConsumerDoubleVotingResponse {} +impl ::prost::Name for MsgSubmitConsumerDoubleVotingResponse { + const NAME: &'static str = "MsgSubmitConsumerDoubleVotingResponse"; + const PACKAGE: &'static str = "interchain_security.ccv.provider.v1"; + fn full_name() -> ::prost::alloc::string::String { + "interchain_security.ccv.provider.v1.MsgSubmitConsumerDoubleVotingResponse" + .into() + } + fn type_url() -> ::prost::alloc::string::String { + "/interchain_security.ccv.provider.v1.MsgSubmitConsumerDoubleVotingResponse" + .into() + } +} +/// MsgUpdateParams is the Msg/UpdateParams request type +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct MsgUpdateParams { + /// authority is the address of the governance account. + #[prost(string, tag = "1")] + pub authority: ::prost::alloc::string::String, + /// params defines the x/provider parameters to update. + #[prost(message, optional, tag = "2")] + pub params: ::core::option::Option, +} +impl ::prost::Name for MsgUpdateParams { + const NAME: &'static str = "MsgUpdateParams"; + const PACKAGE: &'static str = "interchain_security.ccv.provider.v1"; + fn full_name() -> ::prost::alloc::string::String { + "interchain_security.ccv.provider.v1.MsgUpdateParams".into() + } + fn type_url() -> ::prost::alloc::string::String { + "/interchain_security.ccv.provider.v1.MsgUpdateParams".into() + } +} +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, Copy, PartialEq, ::prost::Message)] +pub struct MsgUpdateParamsResponse {} +impl ::prost::Name for MsgUpdateParamsResponse { + const NAME: &'static str = "MsgUpdateParamsResponse"; + const PACKAGE: &'static str = "interchain_security.ccv.provider.v1"; + fn full_name() -> ::prost::alloc::string::String { + "interchain_security.ccv.provider.v1.MsgUpdateParamsResponse".into() + } + fn type_url() -> ::prost::alloc::string::String { + "/interchain_security.ccv.provider.v1.MsgUpdateParamsResponse".into() + } +} +/// \[DEPRECATED\] Use `MsgCreateConsumer` instead +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct MsgConsumerAddition { + /// the proposed chain-id of the new consumer chain, must be different from all + /// other consumer chain ids of the executing provider chain. + #[prost(string, tag = "1")] + pub chain_id: ::prost::alloc::string::String, + /// the proposed initial height of new consumer chain. + /// For a completely new chain, this will be {0,1}. However, it may be + /// different if this is a chain that is converting to a consumer chain. + #[prost(message, optional, tag = "2")] + pub initial_height: ::core::option::Option< + super::super::super::super::ibc::core::client::v1::Height, >, - /// The VSC packets sent by the provider will timeout after this duration. - /// Note that unlike ccv_timeout_period which is an IBC param, - /// the vsc_timeout_period is a provider-side param that enables the provider - /// to timeout VSC packets even when a consumer chain is not live. + /// The hash of the consumer chain genesis state without the consumer CCV + /// module genesis params. It is used for off-chain confirmation of + /// genesis.json validity by validators and other parties. + #[prost(bytes = "vec", tag = "3")] + pub genesis_hash: ::prost::alloc::vec::Vec, + /// The hash of the consumer chain binary that should be run by validators on + /// chain initialization. It is used for off-chain confirmation of binary + /// validity by validators and other parties. + #[prost(bytes = "vec", tag = "4")] + pub binary_hash: ::prost::alloc::vec::Vec, + /// spawn time is the time on the provider chain at which the consumer chain + /// genesis is finalized and all validators will be responsible for starting + /// their consumer chain validator node. #[prost(message, optional, tag = "5")] - pub vsc_timeout_period: ::core::option::Option< - ::tendermint_proto::google::protobuf::Duration, + pub spawn_time: ::core::option::Option< + ::tendermint_proto::google::protobuf::Timestamp, >, - /// The period for which the slash meter is replenished + /// Unbonding period for the consumer, + /// which should be smaller than that of the provider in general. #[prost(message, optional, tag = "6")] - pub slash_meter_replenish_period: ::core::option::Option< + pub unbonding_period: ::core::option::Option< ::tendermint_proto::google::protobuf::Duration, >, - /// The fraction of total voting power that is replenished to the slash meter - /// every replenish period. This param also serves as a maximum fraction of - /// total voting power that the slash meter can hold. - #[prost(string, tag = "7")] - pub slash_meter_replenish_fraction: ::prost::alloc::string::String, - /// The maximum amount of throttled slash or vsc matured packets - /// that can be queued for a single consumer before the provider chain halts. - #[prost(int64, tag = "8")] - pub max_throttled_packets: i64, - /// The fee required to be paid to add a reward denom - #[prost(message, optional, tag = "9")] - pub consumer_reward_denom_registration_fee: ::core::option::Option< - super::super::super::super::cosmos::base::v1beta1::Coin, + /// Sent CCV related IBC packets will timeout after this duration + #[prost(message, optional, tag = "7")] + pub ccv_timeout_period: ::core::option::Option< + ::tendermint_proto::google::protobuf::Duration, + >, + /// Sent transfer related IBC packets will timeout after this duration + #[prost(message, optional, tag = "8")] + pub transfer_timeout_period: ::core::option::Option< + ::tendermint_proto::google::protobuf::Duration, >, + /// The fraction of tokens allocated to the consumer redistribution address + /// during distribution events. The fraction is a string representing a + /// decimal number. For example "0.75" would represent 75%. + #[prost(string, tag = "9")] + pub consumer_redistribution_fraction: ::prost::alloc::string::String, + /// BlocksPerDistributionTransmission is the number of blocks between + /// ibc-token-transfers from the consumer chain to the provider chain. On + /// sending transmission event, `consumer_redistribution_fraction` of the + /// accumulated tokens are sent to the consumer redistribution address. + #[prost(int64, tag = "10")] + pub blocks_per_distribution_transmission: i64, + /// The number of historical info entries to persist in store. + /// This param is a part of the cosmos sdk staking module. In the case of + /// a ccv enabled consumer chain, the ccv module acts as the staking module. + #[prost(int64, tag = "11")] + pub historical_entries: i64, + /// The ID of a token transfer channel used for the Reward Distribution + /// sub-protocol. If DistributionTransmissionChannel == "", a new transfer + /// channel is created on top of the same connection as the CCV channel. + /// Note that transfer_channel_id is the ID of the channel end on the consumer + /// chain. it is most relevant for chains performing a sovereign to consumer + /// changeover in order to maintain the existing ibc transfer channel + #[prost(string, tag = "12")] + pub distribution_transmission_channel: ::prost::alloc::string::String, + /// Corresponds to the percentage of validators that have to validate the chain under the Top N case. + /// For example, 53 corresponds to a Top 53% chain, meaning that the top 53% provider validators by voting power + /// have to validate the proposed consumer chain. top_N can either be 0 or any value in \[50, 100\]. + /// A chain can join with top_N == 0 as an Opt In chain, or with top_N ∈ \[50, 100\] as a Top N chain. + #[prost(uint32, tag = "13")] + pub top_n: u32, + /// Corresponds to the maximum power (percentage-wise) a validator can have on the consumer chain. For instance, if + /// `validators_power_cap` is set to 32, it means that no validator can have more than 32% of the voting power on the + /// consumer chain. Note that this might not be feasible. For example, think of a consumer chain with only + /// 5 validators and with `validators_power_cap` set to 10%. In such a scenario, at least one validator would need + /// to have more than 20% of the total voting power. Therefore, `validators_power_cap` operates on a best-effort basis. + #[prost(uint32, tag = "14")] + pub validators_power_cap: u32, + /// Corresponds to the maximum number of validators that can validate a consumer chain. + /// Only applicable to Opt In chains. Setting `validator_set_cap` on a Top N chain is a no-op. + #[prost(uint32, tag = "15")] + pub validator_set_cap: u32, + /// Corresponds to a list of provider consensus addresses of validators that are the ONLY ones that can validate + /// the consumer chain. + #[prost(string, repeated, tag = "16")] + pub allowlist: ::prost::alloc::vec::Vec<::prost::alloc::string::String>, + /// Corresponds to a list of provider consensus addresses of validators that CANNOT validate the consumer chain. + #[prost(string, repeated, tag = "17")] + pub denylist: ::prost::alloc::vec::Vec<::prost::alloc::string::String>, + /// signer address + #[prost(string, tag = "18")] + pub authority: ::prost::alloc::string::String, + /// Corresponds to the minimal amount of (provider chain) stake required to validate on the consumer chain. + #[prost(uint64, tag = "19")] + pub min_stake: u64, + /// Corresponds to whether inactive validators are allowed to validate the consumer chain. + #[prost(bool, tag = "20")] + pub allow_inactive_vals: bool, } -impl ::prost::Name for Params { - const NAME: &'static str = "Params"; +impl ::prost::Name for MsgConsumerAddition { + const NAME: &'static str = "MsgConsumerAddition"; const PACKAGE: &'static str = "interchain_security.ccv.provider.v1"; fn full_name() -> ::prost::alloc::string::String { - "interchain_security.ccv.provider.v1.Params".into() + "interchain_security.ccv.provider.v1.MsgConsumerAddition".into() } fn type_url() -> ::prost::alloc::string::String { - "/interchain_security.ccv.provider.v1.Params".into() + "/interchain_security.ccv.provider.v1.MsgConsumerAddition".into() } } -/// SlashAcks contains cons addresses of consumer chain validators -/// successfully slashed on the provider chain. +/// \[DEPRECATED\] Use `MsgRemoveConsumer` instead +#[allow(clippy::derive_partial_eq_without_eq)] #[derive(Clone, PartialEq, ::prost::Message)] -pub struct SlashAcks { - #[prost(string, repeated, tag = "1")] - pub addresses: ::prost::alloc::vec::Vec<::prost::alloc::string::String>, +pub struct MsgConsumerRemoval { + /// the chain-id of the consumer chain to be stopped + #[prost(string, tag = "1")] + pub chain_id: ::prost::alloc::string::String, + /// the time on the provider chain at which all validators are responsible to + /// stop their consumer chain validator node + #[prost(message, optional, tag = "2")] + pub stop_time: ::core::option::Option< + ::tendermint_proto::google::protobuf::Timestamp, + >, + /// signer address + #[prost(string, tag = "3")] + pub authority: ::prost::alloc::string::String, } -impl ::prost::Name for SlashAcks { - const NAME: &'static str = "SlashAcks"; +impl ::prost::Name for MsgConsumerRemoval { + const NAME: &'static str = "MsgConsumerRemoval"; const PACKAGE: &'static str = "interchain_security.ccv.provider.v1"; fn full_name() -> ::prost::alloc::string::String { - "interchain_security.ccv.provider.v1.SlashAcks".into() + "interchain_security.ccv.provider.v1.MsgConsumerRemoval".into() } fn type_url() -> ::prost::alloc::string::String { - "/interchain_security.ccv.provider.v1.SlashAcks".into() + "/interchain_security.ccv.provider.v1.MsgConsumerRemoval".into() } } -/// ConsumerAdditionProposals holds pending governance proposals on the provider -/// chain to spawn a new chain. +/// MsgRemoveConsumer defines the message used to remove (and stop) a consumer chain. +/// If it passes, all the consumer chain's state is eventually removed from the provider chain. +#[allow(clippy::derive_partial_eq_without_eq)] #[derive(Clone, PartialEq, ::prost::Message)] -pub struct ConsumerAdditionProposals { - /// proposals waiting for spawn_time to pass - #[prost(message, repeated, tag = "1")] - pub pending: ::prost::alloc::vec::Vec, +pub struct MsgRemoveConsumer { + /// the consumer id of the consumer chain to be stopped + #[prost(string, tag = "1")] + pub consumer_id: ::prost::alloc::string::String, + /// the address of the owner of the consumer chain to be stopped + #[prost(string, tag = "2")] + pub owner: ::prost::alloc::string::String, } -impl ::prost::Name for ConsumerAdditionProposals { - const NAME: &'static str = "ConsumerAdditionProposals"; +impl ::prost::Name for MsgRemoveConsumer { + const NAME: &'static str = "MsgRemoveConsumer"; const PACKAGE: &'static str = "interchain_security.ccv.provider.v1"; fn full_name() -> ::prost::alloc::string::String { - "interchain_security.ccv.provider.v1.ConsumerAdditionProposals".into() + "interchain_security.ccv.provider.v1.MsgRemoveConsumer".into() } fn type_url() -> ::prost::alloc::string::String { - "/interchain_security.ccv.provider.v1.ConsumerAdditionProposals".into() + "/interchain_security.ccv.provider.v1.MsgRemoveConsumer".into() } } -/// ConsumerRemovalProposals holds pending governance proposals on the provider -/// chain to remove (and stop) a consumer chain. -#[derive(Clone, PartialEq, ::prost::Message)] -pub struct ConsumerRemovalProposals { - /// proposals waiting for stop_time to pass - #[prost(message, repeated, tag = "1")] - pub pending: ::prost::alloc::vec::Vec, -} -impl ::prost::Name for ConsumerRemovalProposals { - const NAME: &'static str = "ConsumerRemovalProposals"; +/// MsgRemoveConsumerResponse defines response type for MsgRemoveConsumer messages +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, Copy, PartialEq, ::prost::Message)] +pub struct MsgRemoveConsumerResponse {} +impl ::prost::Name for MsgRemoveConsumerResponse { + const NAME: &'static str = "MsgRemoveConsumerResponse"; const PACKAGE: &'static str = "interchain_security.ccv.provider.v1"; fn full_name() -> ::prost::alloc::string::String { - "interchain_security.ccv.provider.v1.ConsumerRemovalProposals".into() + "interchain_security.ccv.provider.v1.MsgRemoveConsumerResponse".into() } fn type_url() -> ::prost::alloc::string::String { - "/interchain_security.ccv.provider.v1.ConsumerRemovalProposals".into() + "/interchain_security.ccv.provider.v1.MsgRemoveConsumerResponse".into() + } +} +/// ChangeRewardDenomsProposal is a governance proposal on the provider chain to +/// mutate the set of denoms accepted by the provider as rewards. +/// +/// Note: this replaces ChangeRewardDenomsProposal which is deprecated and will be removed soon +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct MsgChangeRewardDenoms { + /// the list of consumer reward denoms to add + #[prost(string, repeated, tag = "1")] + pub denoms_to_add: ::prost::alloc::vec::Vec<::prost::alloc::string::String>, + /// the list of consumer reward denoms to remove + #[prost(string, repeated, tag = "2")] + pub denoms_to_remove: ::prost::alloc::vec::Vec<::prost::alloc::string::String>, + /// authority is the address of the governance account + #[prost(string, tag = "3")] + pub authority: ::prost::alloc::string::String, +} +impl ::prost::Name for MsgChangeRewardDenoms { + const NAME: &'static str = "MsgChangeRewardDenoms"; + const PACKAGE: &'static str = "interchain_security.ccv.provider.v1"; + fn full_name() -> ::prost::alloc::string::String { + "interchain_security.ccv.provider.v1.MsgChangeRewardDenoms".into() + } + fn type_url() -> ::prost::alloc::string::String { + "/interchain_security.ccv.provider.v1.MsgChangeRewardDenoms".into() + } +} +/// MsgChangeRewardDenomsResponse defines response type for MsgChangeRewardDenoms messages +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, Copy, PartialEq, ::prost::Message)] +pub struct MsgChangeRewardDenomsResponse {} +impl ::prost::Name for MsgChangeRewardDenomsResponse { + const NAME: &'static str = "MsgChangeRewardDenomsResponse"; + const PACKAGE: &'static str = "interchain_security.ccv.provider.v1"; + fn full_name() -> ::prost::alloc::string::String { + "interchain_security.ccv.provider.v1.MsgChangeRewardDenomsResponse".into() + } + fn type_url() -> ::prost::alloc::string::String { + "/interchain_security.ccv.provider.v1.MsgChangeRewardDenomsResponse".into() + } +} +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct MsgOptIn { + /// \[DEPRECATED\] use `consumer_id` instead + #[deprecated] + #[prost(string, tag = "1")] + pub chain_id: ::prost::alloc::string::String, + /// the validator address on the provider + #[prost(string, tag = "2")] + pub provider_addr: ::prost::alloc::string::String, + /// (optional) The consensus public key to use on the consumer in json string format corresponding to proto-any, + /// for example `{"@type":"/cosmos.crypto.ed25519.PubKey","key":"Ui5Gf1+mtWUdH8u3xlmzdKID+F3PK0sfXZ73GZ6q6is="}`. + /// This field is optional and can remain empty (i.e., `consumer_key = ""`). A validator can always change the + /// consumer public key at a later stage by issuing a `MsgAssignConsumerKey` message. + #[prost(string, tag = "3")] + pub consumer_key: ::prost::alloc::string::String, + /// submitter address + #[prost(string, tag = "4")] + pub signer: ::prost::alloc::string::String, + /// the consumer id of the consumer chain to opt in to + #[prost(string, tag = "5")] + pub consumer_id: ::prost::alloc::string::String, +} +impl ::prost::Name for MsgOptIn { + const NAME: &'static str = "MsgOptIn"; + const PACKAGE: &'static str = "interchain_security.ccv.provider.v1"; + fn full_name() -> ::prost::alloc::string::String { + "interchain_security.ccv.provider.v1.MsgOptIn".into() + } + fn type_url() -> ::prost::alloc::string::String { + "/interchain_security.ccv.provider.v1.MsgOptIn".into() + } +} +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, Copy, PartialEq, ::prost::Message)] +pub struct MsgOptInResponse {} +impl ::prost::Name for MsgOptInResponse { + const NAME: &'static str = "MsgOptInResponse"; + const PACKAGE: &'static str = "interchain_security.ccv.provider.v1"; + fn full_name() -> ::prost::alloc::string::String { + "interchain_security.ccv.provider.v1.MsgOptInResponse".into() + } + fn type_url() -> ::prost::alloc::string::String { + "/interchain_security.ccv.provider.v1.MsgOptInResponse".into() + } +} +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct MsgOptOut { + /// \[DEPRECATED\] use `consumer_id` instead + #[deprecated] + #[prost(string, tag = "1")] + pub chain_id: ::prost::alloc::string::String, + /// the validator address on the provider + #[prost(string, tag = "2")] + pub provider_addr: ::prost::alloc::string::String, + /// submitter address + #[prost(string, tag = "3")] + pub signer: ::prost::alloc::string::String, + /// the consumer id of the consumer chain to opt out from + #[prost(string, tag = "4")] + pub consumer_id: ::prost::alloc::string::String, +} +impl ::prost::Name for MsgOptOut { + const NAME: &'static str = "MsgOptOut"; + const PACKAGE: &'static str = "interchain_security.ccv.provider.v1"; + fn full_name() -> ::prost::alloc::string::String { + "interchain_security.ccv.provider.v1.MsgOptOut".into() + } + fn type_url() -> ::prost::alloc::string::String { + "/interchain_security.ccv.provider.v1.MsgOptOut".into() + } +} +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, Copy, PartialEq, ::prost::Message)] +pub struct MsgOptOutResponse {} +impl ::prost::Name for MsgOptOutResponse { + const NAME: &'static str = "MsgOptOutResponse"; + const PACKAGE: &'static str = "interchain_security.ccv.provider.v1"; + fn full_name() -> ::prost::alloc::string::String { + "interchain_security.ccv.provider.v1.MsgOptOutResponse".into() + } + fn type_url() -> ::prost::alloc::string::String { + "/interchain_security.ccv.provider.v1.MsgOptOutResponse".into() + } +} +/// MsgSetConsumerCommissionRate allows validators to set +/// a per-consumer chain commission rate +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct MsgSetConsumerCommissionRate { + /// The validator address on the provider + #[prost(string, tag = "1")] + pub provider_addr: ::prost::alloc::string::String, + /// \[DEPRECATED\] use `consumer_id` instead + #[deprecated] + #[prost(string, tag = "2")] + pub chain_id: ::prost::alloc::string::String, + /// The rate to charge delegators on the consumer chain, as a fraction + /// TODO: migrate rate from sdk.Dec to math.LegacyDec + #[prost(string, tag = "3")] + pub rate: ::prost::alloc::string::String, + /// submitter address + #[prost(string, tag = "4")] + pub signer: ::prost::alloc::string::String, + /// the consumer id of the consumer chain to set the commission rate + #[prost(string, tag = "5")] + pub consumer_id: ::prost::alloc::string::String, +} +impl ::prost::Name for MsgSetConsumerCommissionRate { + const NAME: &'static str = "MsgSetConsumerCommissionRate"; + const PACKAGE: &'static str = "interchain_security.ccv.provider.v1"; + fn full_name() -> ::prost::alloc::string::String { + "interchain_security.ccv.provider.v1.MsgSetConsumerCommissionRate".into() + } + fn type_url() -> ::prost::alloc::string::String { + "/interchain_security.ccv.provider.v1.MsgSetConsumerCommissionRate".into() + } +} +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, Copy, PartialEq, ::prost::Message)] +pub struct MsgSetConsumerCommissionRateResponse {} +impl ::prost::Name for MsgSetConsumerCommissionRateResponse { + const NAME: &'static str = "MsgSetConsumerCommissionRateResponse"; + const PACKAGE: &'static str = "interchain_security.ccv.provider.v1"; + fn full_name() -> ::prost::alloc::string::String { + "interchain_security.ccv.provider.v1.MsgSetConsumerCommissionRateResponse".into() + } + fn type_url() -> ::prost::alloc::string::String { + "/interchain_security.ccv.provider.v1.MsgSetConsumerCommissionRateResponse" + .into() + } +} +/// \[DEPRECATED\] Use `MsgUpdateConsumer` instead +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct MsgConsumerModification { + /// the title of the proposal + #[prost(string, tag = "1")] + pub title: ::prost::alloc::string::String, + /// the description of the proposal + #[prost(string, tag = "2")] + pub description: ::prost::alloc::string::String, + /// the chain-id of the consumer chain to be modified + #[prost(string, tag = "3")] + pub chain_id: ::prost::alloc::string::String, + /// Corresponds to the percentage of validators that have to validate the chain under the Top N case. + /// For example, 53 corresponds to a Top 53% chain, meaning that the top 53% provider validators by voting power + /// have to validate the proposed consumer chain. top_N can either be 0 or any value in \[50, 100\]. + /// A chain can join with top_N == 0 as an Opt In chain, or with top_N ∈ \[50, 100\] as a Top N chain. + #[prost(uint32, tag = "4")] + pub top_n: u32, + /// Corresponds to the maximum power (percentage-wise) a validator can have on the consumer chain. For instance, if + /// `validators_power_cap` is set to 32, it means that no validator can have more than 32% of the voting power on the + /// consumer chain. Note that this might not be feasible. For example, think of a consumer chain with only + /// 5 validators and with `validators_power_cap` set to 10%. In such a scenario, at least one validator would need + /// to have more than 20% of the total voting power. Therefore, `validators_power_cap` operates on a best-effort basis. + #[prost(uint32, tag = "5")] + pub validators_power_cap: u32, + /// Corresponds to the maximum number of validators that can validate a consumer chain. + /// Only applicable to Opt In chains. Setting `validator_set_cap` on a Top N chain is a no-op. + #[prost(uint32, tag = "6")] + pub validator_set_cap: u32, + /// Corresponds to a list of provider consensus addresses of validators that are the ONLY ones that can validate + /// the consumer chain. + #[prost(string, repeated, tag = "7")] + pub allowlist: ::prost::alloc::vec::Vec<::prost::alloc::string::String>, + /// Corresponds to a list of provider consensus addresses of validators that CANNOT validate the consumer chain. + #[prost(string, repeated, tag = "8")] + pub denylist: ::prost::alloc::vec::Vec<::prost::alloc::string::String>, + /// signer address + #[prost(string, tag = "9")] + pub authority: ::prost::alloc::string::String, + /// Corresponds to the minimal amount of (provider chain) stake required to validate on the consumer chain. + #[prost(uint64, tag = "10")] + pub min_stake: u64, + /// Corresponds to whether inactive validators are allowed to validate the consumer chain. + #[prost(bool, tag = "11")] + pub allow_inactive_vals: bool, +} +impl ::prost::Name for MsgConsumerModification { + const NAME: &'static str = "MsgConsumerModification"; + const PACKAGE: &'static str = "interchain_security.ccv.provider.v1"; + fn full_name() -> ::prost::alloc::string::String { + "interchain_security.ccv.provider.v1.MsgConsumerModification".into() + } + fn type_url() -> ::prost::alloc::string::String { + "/interchain_security.ccv.provider.v1.MsgConsumerModification".into() + } +} +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, Copy, PartialEq, ::prost::Message)] +pub struct MsgConsumerModificationResponse {} +impl ::prost::Name for MsgConsumerModificationResponse { + const NAME: &'static str = "MsgConsumerModificationResponse"; + const PACKAGE: &'static str = "interchain_security.ccv.provider.v1"; + fn full_name() -> ::prost::alloc::string::String { + "interchain_security.ccv.provider.v1.MsgConsumerModificationResponse".into() + } + fn type_url() -> ::prost::alloc::string::String { + "/interchain_security.ccv.provider.v1.MsgConsumerModificationResponse".into() + } +} +/// MsgCreateConsumer defines the message that creates a consumer chain +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct MsgCreateConsumer { + /// Submitter address. If the message is successfully handled, the ownership of + /// the consumer chain will given to this address. + #[prost(string, tag = "1")] + pub submitter: ::prost::alloc::string::String, + /// the chain id of the new consumer chain + #[prost(string, tag = "2")] + pub chain_id: ::prost::alloc::string::String, + #[prost(message, optional, tag = "3")] + pub metadata: ::core::option::Option, + #[prost(message, optional, tag = "4")] + pub initialization_parameters: ::core::option::Option< + ConsumerInitializationParameters, + >, + #[prost(message, optional, tag = "5")] + pub power_shaping_parameters: ::core::option::Option, +} +impl ::prost::Name for MsgCreateConsumer { + const NAME: &'static str = "MsgCreateConsumer"; + const PACKAGE: &'static str = "interchain_security.ccv.provider.v1"; + fn full_name() -> ::prost::alloc::string::String { + "interchain_security.ccv.provider.v1.MsgCreateConsumer".into() + } + fn type_url() -> ::prost::alloc::string::String { + "/interchain_security.ccv.provider.v1.MsgCreateConsumer".into() + } +} +/// MsgCreateConsumerResponse defines response type for MsgCreateConsumer +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct MsgCreateConsumerResponse { + #[prost(string, tag = "1")] + pub consumer_id: ::prost::alloc::string::String, +} +impl ::prost::Name for MsgCreateConsumerResponse { + const NAME: &'static str = "MsgCreateConsumerResponse"; + const PACKAGE: &'static str = "interchain_security.ccv.provider.v1"; + fn full_name() -> ::prost::alloc::string::String { + "interchain_security.ccv.provider.v1.MsgCreateConsumerResponse".into() + } + fn type_url() -> ::prost::alloc::string::String { + "/interchain_security.ccv.provider.v1.MsgCreateConsumerResponse".into() + } +} +/// MsgUpdateConsumer defines the message used to modify a consumer chain. +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct MsgUpdateConsumer { + /// the address of the owner of the consumer chain to be updated + #[prost(string, tag = "1")] + pub owner: ::prost::alloc::string::String, + /// the consumer id of the consumer chain to be updated + #[prost(string, tag = "2")] + pub consumer_id: ::prost::alloc::string::String, + /// the new owner of the consumer when updated + #[prost(string, tag = "3")] + pub new_owner_address: ::prost::alloc::string::String, + /// the metadata of the consumer when updated + #[prost(message, optional, tag = "4")] + pub metadata: ::core::option::Option, + /// initialization parameters can only be updated before a chain has launched + #[prost(message, optional, tag = "5")] + pub initialization_parameters: ::core::option::Option< + ConsumerInitializationParameters, + >, + /// the power-shaping parameters of the consumer when updated + #[prost(message, optional, tag = "6")] + pub power_shaping_parameters: ::core::option::Option, +} +impl ::prost::Name for MsgUpdateConsumer { + const NAME: &'static str = "MsgUpdateConsumer"; + const PACKAGE: &'static str = "interchain_security.ccv.provider.v1"; + fn full_name() -> ::prost::alloc::string::String { + "interchain_security.ccv.provider.v1.MsgUpdateConsumer".into() + } + fn type_url() -> ::prost::alloc::string::String { + "/interchain_security.ccv.provider.v1.MsgUpdateConsumer".into() + } +} +/// MsgUpdateConsumerResponse defines response type for MsgUpdateConsumer messages +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, Copy, PartialEq, ::prost::Message)] +pub struct MsgUpdateConsumerResponse {} +impl ::prost::Name for MsgUpdateConsumerResponse { + const NAME: &'static str = "MsgUpdateConsumerResponse"; + const PACKAGE: &'static str = "interchain_security.ccv.provider.v1"; + fn full_name() -> ::prost::alloc::string::String { + "interchain_security.ccv.provider.v1.MsgUpdateConsumerResponse".into() + } + fn type_url() -> ::prost::alloc::string::String { + "/interchain_security.ccv.provider.v1.MsgUpdateConsumerResponse".into() + } +} +/// Generated client implementations. +#[cfg(feature = "client")] +pub mod msg_client { + #![allow(unused_variables, dead_code, missing_docs, clippy::let_unit_value)] + use tonic::codegen::*; + use tonic::codegen::http::Uri; + /// Msg defines the Msg service. + #[derive(Debug, Clone)] + pub struct MsgClient { + inner: tonic::client::Grpc, + } + #[cfg(feature = "transport")] + impl MsgClient { + /// Attempt to create a new client by connecting to a given endpoint. + pub async fn connect(dst: D) -> Result + where + D: TryInto, + D::Error: Into, + { + let conn = tonic::transport::Endpoint::new(dst)?.connect().await?; + Ok(Self::new(conn)) + } + } + impl MsgClient + where + T: tonic::client::GrpcService, + T::Error: Into, + T::ResponseBody: Body + Send + 'static, + ::Error: Into + Send, + { + pub fn new(inner: T) -> Self { + let inner = tonic::client::Grpc::new(inner); + Self { inner } + } + pub fn with_origin(inner: T, origin: Uri) -> Self { + let inner = tonic::client::Grpc::with_origin(inner, origin); + Self { inner } + } + pub fn with_interceptor( + inner: T, + interceptor: F, + ) -> MsgClient> + where + F: tonic::service::Interceptor, + T::ResponseBody: Default, + T: tonic::codegen::Service< + http::Request, + Response = http::Response< + >::ResponseBody, + >, + >, + , + >>::Error: Into + Send + Sync, + { + MsgClient::new(InterceptedService::new(inner, interceptor)) + } + /// Compress requests with the given encoding. + /// + /// This requires the server to support it otherwise it might respond with an + /// error. + #[must_use] + pub fn send_compressed(mut self, encoding: CompressionEncoding) -> Self { + self.inner = self.inner.send_compressed(encoding); + self + } + /// Enable decompressing responses. + #[must_use] + pub fn accept_compressed(mut self, encoding: CompressionEncoding) -> Self { + self.inner = self.inner.accept_compressed(encoding); + self + } + /// Limits the maximum size of a decoded message. + /// + /// Default: `4MB` + #[must_use] + pub fn max_decoding_message_size(mut self, limit: usize) -> Self { + self.inner = self.inner.max_decoding_message_size(limit); + self + } + /// Limits the maximum size of an encoded message. + /// + /// Default: `usize::MAX` + #[must_use] + pub fn max_encoding_message_size(mut self, limit: usize) -> Self { + self.inner = self.inner.max_encoding_message_size(limit); + self + } + pub async fn assign_consumer_key( + &mut self, + request: impl tonic::IntoRequest, + ) -> std::result::Result< + tonic::Response, + tonic::Status, + > { + self.inner + .ready() + .await + .map_err(|e| { + tonic::Status::new( + tonic::Code::Unknown, + format!("Service was not ready: {}", e.into()), + ) + })?; + let codec = tonic::codec::ProstCodec::default(); + let path = http::uri::PathAndQuery::from_static( + "/interchain_security.ccv.provider.v1.Msg/AssignConsumerKey", + ); + let mut req = request.into_request(); + req.extensions_mut() + .insert( + GrpcMethod::new( + "interchain_security.ccv.provider.v1.Msg", + "AssignConsumerKey", + ), + ); + self.inner.unary(req, path, codec).await + } + pub async fn submit_consumer_misbehaviour( + &mut self, + request: impl tonic::IntoRequest, + ) -> std::result::Result< + tonic::Response, + tonic::Status, + > { + self.inner + .ready() + .await + .map_err(|e| { + tonic::Status::new( + tonic::Code::Unknown, + format!("Service was not ready: {}", e.into()), + ) + })?; + let codec = tonic::codec::ProstCodec::default(); + let path = http::uri::PathAndQuery::from_static( + "/interchain_security.ccv.provider.v1.Msg/SubmitConsumerMisbehaviour", + ); + let mut req = request.into_request(); + req.extensions_mut() + .insert( + GrpcMethod::new( + "interchain_security.ccv.provider.v1.Msg", + "SubmitConsumerMisbehaviour", + ), + ); + self.inner.unary(req, path, codec).await + } + pub async fn submit_consumer_double_voting( + &mut self, + request: impl tonic::IntoRequest, + ) -> std::result::Result< + tonic::Response, + tonic::Status, + > { + self.inner + .ready() + .await + .map_err(|e| { + tonic::Status::new( + tonic::Code::Unknown, + format!("Service was not ready: {}", e.into()), + ) + })?; + let codec = tonic::codec::ProstCodec::default(); + let path = http::uri::PathAndQuery::from_static( + "/interchain_security.ccv.provider.v1.Msg/SubmitConsumerDoubleVoting", + ); + let mut req = request.into_request(); + req.extensions_mut() + .insert( + GrpcMethod::new( + "interchain_security.ccv.provider.v1.Msg", + "SubmitConsumerDoubleVoting", + ), + ); + self.inner.unary(req, path, codec).await + } + pub async fn create_consumer( + &mut self, + request: impl tonic::IntoRequest, + ) -> std::result::Result< + tonic::Response, + tonic::Status, + > { + self.inner + .ready() + .await + .map_err(|e| { + tonic::Status::new( + tonic::Code::Unknown, + format!("Service was not ready: {}", e.into()), + ) + })?; + let codec = tonic::codec::ProstCodec::default(); + let path = http::uri::PathAndQuery::from_static( + "/interchain_security.ccv.provider.v1.Msg/CreateConsumer", + ); + let mut req = request.into_request(); + req.extensions_mut() + .insert( + GrpcMethod::new( + "interchain_security.ccv.provider.v1.Msg", + "CreateConsumer", + ), + ); + self.inner.unary(req, path, codec).await + } + pub async fn update_consumer( + &mut self, + request: impl tonic::IntoRequest, + ) -> std::result::Result< + tonic::Response, + tonic::Status, + > { + self.inner + .ready() + .await + .map_err(|e| { + tonic::Status::new( + tonic::Code::Unknown, + format!("Service was not ready: {}", e.into()), + ) + })?; + let codec = tonic::codec::ProstCodec::default(); + let path = http::uri::PathAndQuery::from_static( + "/interchain_security.ccv.provider.v1.Msg/UpdateConsumer", + ); + let mut req = request.into_request(); + req.extensions_mut() + .insert( + GrpcMethod::new( + "interchain_security.ccv.provider.v1.Msg", + "UpdateConsumer", + ), + ); + self.inner.unary(req, path, codec).await + } + pub async fn remove_consumer( + &mut self, + request: impl tonic::IntoRequest, + ) -> std::result::Result< + tonic::Response, + tonic::Status, + > { + self.inner + .ready() + .await + .map_err(|e| { + tonic::Status::new( + tonic::Code::Unknown, + format!("Service was not ready: {}", e.into()), + ) + })?; + let codec = tonic::codec::ProstCodec::default(); + let path = http::uri::PathAndQuery::from_static( + "/interchain_security.ccv.provider.v1.Msg/RemoveConsumer", + ); + let mut req = request.into_request(); + req.extensions_mut() + .insert( + GrpcMethod::new( + "interchain_security.ccv.provider.v1.Msg", + "RemoveConsumer", + ), + ); + self.inner.unary(req, path, codec).await + } + pub async fn update_params( + &mut self, + request: impl tonic::IntoRequest, + ) -> std::result::Result< + tonic::Response, + tonic::Status, + > { + self.inner + .ready() + .await + .map_err(|e| { + tonic::Status::new( + tonic::Code::Unknown, + format!("Service was not ready: {}", e.into()), + ) + })?; + let codec = tonic::codec::ProstCodec::default(); + let path = http::uri::PathAndQuery::from_static( + "/interchain_security.ccv.provider.v1.Msg/UpdateParams", + ); + let mut req = request.into_request(); + req.extensions_mut() + .insert( + GrpcMethod::new( + "interchain_security.ccv.provider.v1.Msg", + "UpdateParams", + ), + ); + self.inner.unary(req, path, codec).await + } + pub async fn opt_in( + &mut self, + request: impl tonic::IntoRequest, + ) -> std::result::Result< + tonic::Response, + tonic::Status, + > { + self.inner + .ready() + .await + .map_err(|e| { + tonic::Status::new( + tonic::Code::Unknown, + format!("Service was not ready: {}", e.into()), + ) + })?; + let codec = tonic::codec::ProstCodec::default(); + let path = http::uri::PathAndQuery::from_static( + "/interchain_security.ccv.provider.v1.Msg/OptIn", + ); + let mut req = request.into_request(); + req.extensions_mut() + .insert( + GrpcMethod::new("interchain_security.ccv.provider.v1.Msg", "OptIn"), + ); + self.inner.unary(req, path, codec).await + } + pub async fn opt_out( + &mut self, + request: impl tonic::IntoRequest, + ) -> std::result::Result< + tonic::Response, + tonic::Status, + > { + self.inner + .ready() + .await + .map_err(|e| { + tonic::Status::new( + tonic::Code::Unknown, + format!("Service was not ready: {}", e.into()), + ) + })?; + let codec = tonic::codec::ProstCodec::default(); + let path = http::uri::PathAndQuery::from_static( + "/interchain_security.ccv.provider.v1.Msg/OptOut", + ); + let mut req = request.into_request(); + req.extensions_mut() + .insert( + GrpcMethod::new("interchain_security.ccv.provider.v1.Msg", "OptOut"), + ); + self.inner.unary(req, path, codec).await + } + pub async fn set_consumer_commission_rate( + &mut self, + request: impl tonic::IntoRequest, + ) -> std::result::Result< + tonic::Response, + tonic::Status, + > { + self.inner + .ready() + .await + .map_err(|e| { + tonic::Status::new( + tonic::Code::Unknown, + format!("Service was not ready: {}", e.into()), + ) + })?; + let codec = tonic::codec::ProstCodec::default(); + let path = http::uri::PathAndQuery::from_static( + "/interchain_security.ccv.provider.v1.Msg/SetConsumerCommissionRate", + ); + let mut req = request.into_request(); + req.extensions_mut() + .insert( + GrpcMethod::new( + "interchain_security.ccv.provider.v1.Msg", + "SetConsumerCommissionRate", + ), + ); + self.inner.unary(req, path, codec).await + } + pub async fn change_reward_denoms( + &mut self, + request: impl tonic::IntoRequest, + ) -> std::result::Result< + tonic::Response, + tonic::Status, + > { + self.inner + .ready() + .await + .map_err(|e| { + tonic::Status::new( + tonic::Code::Unknown, + format!("Service was not ready: {}", e.into()), + ) + })?; + let codec = tonic::codec::ProstCodec::default(); + let path = http::uri::PathAndQuery::from_static( + "/interchain_security.ccv.provider.v1.Msg/ChangeRewardDenoms", + ); + let mut req = request.into_request(); + req.extensions_mut() + .insert( + GrpcMethod::new( + "interchain_security.ccv.provider.v1.Msg", + "ChangeRewardDenoms", + ), + ); + self.inner.unary(req, path, codec).await + } + } +} +/// Generated server implementations. +#[cfg(feature = "server")] +pub mod msg_server { + #![allow(unused_variables, dead_code, missing_docs, clippy::let_unit_value)] + use tonic::codegen::*; + /// Generated trait containing gRPC methods that should be implemented for use with MsgServer. + #[async_trait] + pub trait Msg: Send + Sync + 'static { + async fn assign_consumer_key( + &self, + request: tonic::Request, + ) -> std::result::Result< + tonic::Response, + tonic::Status, + >; + async fn submit_consumer_misbehaviour( + &self, + request: tonic::Request, + ) -> std::result::Result< + tonic::Response, + tonic::Status, + >; + async fn submit_consumer_double_voting( + &self, + request: tonic::Request, + ) -> std::result::Result< + tonic::Response, + tonic::Status, + >; + async fn create_consumer( + &self, + request: tonic::Request, + ) -> std::result::Result< + tonic::Response, + tonic::Status, + >; + async fn update_consumer( + &self, + request: tonic::Request, + ) -> std::result::Result< + tonic::Response, + tonic::Status, + >; + async fn remove_consumer( + &self, + request: tonic::Request, + ) -> std::result::Result< + tonic::Response, + tonic::Status, + >; + async fn update_params( + &self, + request: tonic::Request, + ) -> std::result::Result< + tonic::Response, + tonic::Status, + >; + async fn opt_in( + &self, + request: tonic::Request, + ) -> std::result::Result< + tonic::Response, + tonic::Status, + >; + async fn opt_out( + &self, + request: tonic::Request, + ) -> std::result::Result< + tonic::Response, + tonic::Status, + >; + async fn set_consumer_commission_rate( + &self, + request: tonic::Request, + ) -> std::result::Result< + tonic::Response, + tonic::Status, + >; + async fn change_reward_denoms( + &self, + request: tonic::Request, + ) -> std::result::Result< + tonic::Response, + tonic::Status, + >; + } + /// Msg defines the Msg service. + #[derive(Debug)] + pub struct MsgServer { + inner: Arc, + accept_compression_encodings: EnabledCompressionEncodings, + send_compression_encodings: EnabledCompressionEncodings, + max_decoding_message_size: Option, + max_encoding_message_size: Option, + } + impl MsgServer { + pub fn new(inner: T) -> Self { + Self::from_arc(Arc::new(inner)) + } + pub fn from_arc(inner: Arc) -> Self { + Self { + inner, + accept_compression_encodings: Default::default(), + send_compression_encodings: Default::default(), + max_decoding_message_size: None, + max_encoding_message_size: None, + } + } + pub fn with_interceptor( + inner: T, + interceptor: F, + ) -> InterceptedService + where + F: tonic::service::Interceptor, + { + InterceptedService::new(Self::new(inner), interceptor) + } + /// Enable decompressing requests with the given encoding. + #[must_use] + pub fn accept_compressed(mut self, encoding: CompressionEncoding) -> Self { + self.accept_compression_encodings.enable(encoding); + self + } + /// Compress responses with the given encoding, if the client supports it. + #[must_use] + pub fn send_compressed(mut self, encoding: CompressionEncoding) -> Self { + self.send_compression_encodings.enable(encoding); + self + } + /// Limits the maximum size of a decoded message. + /// + /// Default: `4MB` + #[must_use] + pub fn max_decoding_message_size(mut self, limit: usize) -> Self { + self.max_decoding_message_size = Some(limit); + self + } + /// Limits the maximum size of an encoded message. + /// + /// Default: `usize::MAX` + #[must_use] + pub fn max_encoding_message_size(mut self, limit: usize) -> Self { + self.max_encoding_message_size = Some(limit); + self + } + } + impl tonic::codegen::Service> for MsgServer + where + T: Msg, + B: Body + Send + 'static, + B::Error: Into + Send + 'static, + { + type Response = http::Response; + type Error = std::convert::Infallible; + type Future = BoxFuture; + fn poll_ready( + &mut self, + _cx: &mut Context<'_>, + ) -> Poll> { + Poll::Ready(Ok(())) + } + fn call(&mut self, req: http::Request) -> Self::Future { + match req.uri().path() { + "/interchain_security.ccv.provider.v1.Msg/AssignConsumerKey" => { + #[allow(non_camel_case_types)] + struct AssignConsumerKeySvc(pub Arc); + impl tonic::server::UnaryService + for AssignConsumerKeySvc { + type Response = super::MsgAssignConsumerKeyResponse; + type Future = BoxFuture< + tonic::Response, + tonic::Status, + >; + fn call( + &mut self, + request: tonic::Request, + ) -> Self::Future { + let inner = Arc::clone(&self.0); + let fut = async move { + ::assign_consumer_key(&inner, request).await + }; + Box::pin(fut) + } + } + let accept_compression_encodings = self.accept_compression_encodings; + let send_compression_encodings = self.send_compression_encodings; + let max_decoding_message_size = self.max_decoding_message_size; + let max_encoding_message_size = self.max_encoding_message_size; + let inner = self.inner.clone(); + let fut = async move { + let method = AssignConsumerKeySvc(inner); + let codec = tonic::codec::ProstCodec::default(); + let mut grpc = tonic::server::Grpc::new(codec) + .apply_compression_config( + accept_compression_encodings, + send_compression_encodings, + ) + .apply_max_message_size_config( + max_decoding_message_size, + max_encoding_message_size, + ); + let res = grpc.unary(method, req).await; + Ok(res) + }; + Box::pin(fut) + } + "/interchain_security.ccv.provider.v1.Msg/SubmitConsumerMisbehaviour" => { + #[allow(non_camel_case_types)] + struct SubmitConsumerMisbehaviourSvc(pub Arc); + impl< + T: Msg, + > tonic::server::UnaryService + for SubmitConsumerMisbehaviourSvc { + type Response = super::MsgSubmitConsumerMisbehaviourResponse; + type Future = BoxFuture< + tonic::Response, + tonic::Status, + >; + fn call( + &mut self, + request: tonic::Request, + ) -> Self::Future { + let inner = Arc::clone(&self.0); + let fut = async move { + ::submit_consumer_misbehaviour(&inner, request) + .await + }; + Box::pin(fut) + } + } + let accept_compression_encodings = self.accept_compression_encodings; + let send_compression_encodings = self.send_compression_encodings; + let max_decoding_message_size = self.max_decoding_message_size; + let max_encoding_message_size = self.max_encoding_message_size; + let inner = self.inner.clone(); + let fut = async move { + let method = SubmitConsumerMisbehaviourSvc(inner); + let codec = tonic::codec::ProstCodec::default(); + let mut grpc = tonic::server::Grpc::new(codec) + .apply_compression_config( + accept_compression_encodings, + send_compression_encodings, + ) + .apply_max_message_size_config( + max_decoding_message_size, + max_encoding_message_size, + ); + let res = grpc.unary(method, req).await; + Ok(res) + }; + Box::pin(fut) + } + "/interchain_security.ccv.provider.v1.Msg/SubmitConsumerDoubleVoting" => { + #[allow(non_camel_case_types)] + struct SubmitConsumerDoubleVotingSvc(pub Arc); + impl< + T: Msg, + > tonic::server::UnaryService + for SubmitConsumerDoubleVotingSvc { + type Response = super::MsgSubmitConsumerDoubleVotingResponse; + type Future = BoxFuture< + tonic::Response, + tonic::Status, + >; + fn call( + &mut self, + request: tonic::Request, + ) -> Self::Future { + let inner = Arc::clone(&self.0); + let fut = async move { + ::submit_consumer_double_voting(&inner, request) + .await + }; + Box::pin(fut) + } + } + let accept_compression_encodings = self.accept_compression_encodings; + let send_compression_encodings = self.send_compression_encodings; + let max_decoding_message_size = self.max_decoding_message_size; + let max_encoding_message_size = self.max_encoding_message_size; + let inner = self.inner.clone(); + let fut = async move { + let method = SubmitConsumerDoubleVotingSvc(inner); + let codec = tonic::codec::ProstCodec::default(); + let mut grpc = tonic::server::Grpc::new(codec) + .apply_compression_config( + accept_compression_encodings, + send_compression_encodings, + ) + .apply_max_message_size_config( + max_decoding_message_size, + max_encoding_message_size, + ); + let res = grpc.unary(method, req).await; + Ok(res) + }; + Box::pin(fut) + } + "/interchain_security.ccv.provider.v1.Msg/CreateConsumer" => { + #[allow(non_camel_case_types)] + struct CreateConsumerSvc(pub Arc); + impl tonic::server::UnaryService + for CreateConsumerSvc { + type Response = super::MsgCreateConsumerResponse; + type Future = BoxFuture< + tonic::Response, + tonic::Status, + >; + fn call( + &mut self, + request: tonic::Request, + ) -> Self::Future { + let inner = Arc::clone(&self.0); + let fut = async move { + ::create_consumer(&inner, request).await + }; + Box::pin(fut) + } + } + let accept_compression_encodings = self.accept_compression_encodings; + let send_compression_encodings = self.send_compression_encodings; + let max_decoding_message_size = self.max_decoding_message_size; + let max_encoding_message_size = self.max_encoding_message_size; + let inner = self.inner.clone(); + let fut = async move { + let method = CreateConsumerSvc(inner); + let codec = tonic::codec::ProstCodec::default(); + let mut grpc = tonic::server::Grpc::new(codec) + .apply_compression_config( + accept_compression_encodings, + send_compression_encodings, + ) + .apply_max_message_size_config( + max_decoding_message_size, + max_encoding_message_size, + ); + let res = grpc.unary(method, req).await; + Ok(res) + }; + Box::pin(fut) + } + "/interchain_security.ccv.provider.v1.Msg/UpdateConsumer" => { + #[allow(non_camel_case_types)] + struct UpdateConsumerSvc(pub Arc); + impl tonic::server::UnaryService + for UpdateConsumerSvc { + type Response = super::MsgUpdateConsumerResponse; + type Future = BoxFuture< + tonic::Response, + tonic::Status, + >; + fn call( + &mut self, + request: tonic::Request, + ) -> Self::Future { + let inner = Arc::clone(&self.0); + let fut = async move { + ::update_consumer(&inner, request).await + }; + Box::pin(fut) + } + } + let accept_compression_encodings = self.accept_compression_encodings; + let send_compression_encodings = self.send_compression_encodings; + let max_decoding_message_size = self.max_decoding_message_size; + let max_encoding_message_size = self.max_encoding_message_size; + let inner = self.inner.clone(); + let fut = async move { + let method = UpdateConsumerSvc(inner); + let codec = tonic::codec::ProstCodec::default(); + let mut grpc = tonic::server::Grpc::new(codec) + .apply_compression_config( + accept_compression_encodings, + send_compression_encodings, + ) + .apply_max_message_size_config( + max_decoding_message_size, + max_encoding_message_size, + ); + let res = grpc.unary(method, req).await; + Ok(res) + }; + Box::pin(fut) + } + "/interchain_security.ccv.provider.v1.Msg/RemoveConsumer" => { + #[allow(non_camel_case_types)] + struct RemoveConsumerSvc(pub Arc); + impl tonic::server::UnaryService + for RemoveConsumerSvc { + type Response = super::MsgRemoveConsumerResponse; + type Future = BoxFuture< + tonic::Response, + tonic::Status, + >; + fn call( + &mut self, + request: tonic::Request, + ) -> Self::Future { + let inner = Arc::clone(&self.0); + let fut = async move { + ::remove_consumer(&inner, request).await + }; + Box::pin(fut) + } + } + let accept_compression_encodings = self.accept_compression_encodings; + let send_compression_encodings = self.send_compression_encodings; + let max_decoding_message_size = self.max_decoding_message_size; + let max_encoding_message_size = self.max_encoding_message_size; + let inner = self.inner.clone(); + let fut = async move { + let method = RemoveConsumerSvc(inner); + let codec = tonic::codec::ProstCodec::default(); + let mut grpc = tonic::server::Grpc::new(codec) + .apply_compression_config( + accept_compression_encodings, + send_compression_encodings, + ) + .apply_max_message_size_config( + max_decoding_message_size, + max_encoding_message_size, + ); + let res = grpc.unary(method, req).await; + Ok(res) + }; + Box::pin(fut) + } + "/interchain_security.ccv.provider.v1.Msg/UpdateParams" => { + #[allow(non_camel_case_types)] + struct UpdateParamsSvc(pub Arc); + impl tonic::server::UnaryService + for UpdateParamsSvc { + type Response = super::MsgUpdateParamsResponse; + type Future = BoxFuture< + tonic::Response, + tonic::Status, + >; + fn call( + &mut self, + request: tonic::Request, + ) -> Self::Future { + let inner = Arc::clone(&self.0); + let fut = async move { + ::update_params(&inner, request).await + }; + Box::pin(fut) + } + } + let accept_compression_encodings = self.accept_compression_encodings; + let send_compression_encodings = self.send_compression_encodings; + let max_decoding_message_size = self.max_decoding_message_size; + let max_encoding_message_size = self.max_encoding_message_size; + let inner = self.inner.clone(); + let fut = async move { + let method = UpdateParamsSvc(inner); + let codec = tonic::codec::ProstCodec::default(); + let mut grpc = tonic::server::Grpc::new(codec) + .apply_compression_config( + accept_compression_encodings, + send_compression_encodings, + ) + .apply_max_message_size_config( + max_decoding_message_size, + max_encoding_message_size, + ); + let res = grpc.unary(method, req).await; + Ok(res) + }; + Box::pin(fut) + } + "/interchain_security.ccv.provider.v1.Msg/OptIn" => { + #[allow(non_camel_case_types)] + struct OptInSvc(pub Arc); + impl tonic::server::UnaryService + for OptInSvc { + type Response = super::MsgOptInResponse; + type Future = BoxFuture< + tonic::Response, + tonic::Status, + >; + fn call( + &mut self, + request: tonic::Request, + ) -> Self::Future { + let inner = Arc::clone(&self.0); + let fut = async move { + ::opt_in(&inner, request).await + }; + Box::pin(fut) + } + } + let accept_compression_encodings = self.accept_compression_encodings; + let send_compression_encodings = self.send_compression_encodings; + let max_decoding_message_size = self.max_decoding_message_size; + let max_encoding_message_size = self.max_encoding_message_size; + let inner = self.inner.clone(); + let fut = async move { + let method = OptInSvc(inner); + let codec = tonic::codec::ProstCodec::default(); + let mut grpc = tonic::server::Grpc::new(codec) + .apply_compression_config( + accept_compression_encodings, + send_compression_encodings, + ) + .apply_max_message_size_config( + max_decoding_message_size, + max_encoding_message_size, + ); + let res = grpc.unary(method, req).await; + Ok(res) + }; + Box::pin(fut) + } + "/interchain_security.ccv.provider.v1.Msg/OptOut" => { + #[allow(non_camel_case_types)] + struct OptOutSvc(pub Arc); + impl tonic::server::UnaryService + for OptOutSvc { + type Response = super::MsgOptOutResponse; + type Future = BoxFuture< + tonic::Response, + tonic::Status, + >; + fn call( + &mut self, + request: tonic::Request, + ) -> Self::Future { + let inner = Arc::clone(&self.0); + let fut = async move { + ::opt_out(&inner, request).await + }; + Box::pin(fut) + } + } + let accept_compression_encodings = self.accept_compression_encodings; + let send_compression_encodings = self.send_compression_encodings; + let max_decoding_message_size = self.max_decoding_message_size; + let max_encoding_message_size = self.max_encoding_message_size; + let inner = self.inner.clone(); + let fut = async move { + let method = OptOutSvc(inner); + let codec = tonic::codec::ProstCodec::default(); + let mut grpc = tonic::server::Grpc::new(codec) + .apply_compression_config( + accept_compression_encodings, + send_compression_encodings, + ) + .apply_max_message_size_config( + max_decoding_message_size, + max_encoding_message_size, + ); + let res = grpc.unary(method, req).await; + Ok(res) + }; + Box::pin(fut) + } + "/interchain_security.ccv.provider.v1.Msg/SetConsumerCommissionRate" => { + #[allow(non_camel_case_types)] + struct SetConsumerCommissionRateSvc(pub Arc); + impl< + T: Msg, + > tonic::server::UnaryService + for SetConsumerCommissionRateSvc { + type Response = super::MsgSetConsumerCommissionRateResponse; + type Future = BoxFuture< + tonic::Response, + tonic::Status, + >; + fn call( + &mut self, + request: tonic::Request, + ) -> Self::Future { + let inner = Arc::clone(&self.0); + let fut = async move { + ::set_consumer_commission_rate(&inner, request) + .await + }; + Box::pin(fut) + } + } + let accept_compression_encodings = self.accept_compression_encodings; + let send_compression_encodings = self.send_compression_encodings; + let max_decoding_message_size = self.max_decoding_message_size; + let max_encoding_message_size = self.max_encoding_message_size; + let inner = self.inner.clone(); + let fut = async move { + let method = SetConsumerCommissionRateSvc(inner); + let codec = tonic::codec::ProstCodec::default(); + let mut grpc = tonic::server::Grpc::new(codec) + .apply_compression_config( + accept_compression_encodings, + send_compression_encodings, + ) + .apply_max_message_size_config( + max_decoding_message_size, + max_encoding_message_size, + ); + let res = grpc.unary(method, req).await; + Ok(res) + }; + Box::pin(fut) + } + "/interchain_security.ccv.provider.v1.Msg/ChangeRewardDenoms" => { + #[allow(non_camel_case_types)] + struct ChangeRewardDenomsSvc(pub Arc); + impl< + T: Msg, + > tonic::server::UnaryService + for ChangeRewardDenomsSvc { + type Response = super::MsgChangeRewardDenomsResponse; + type Future = BoxFuture< + tonic::Response, + tonic::Status, + >; + fn call( + &mut self, + request: tonic::Request, + ) -> Self::Future { + let inner = Arc::clone(&self.0); + let fut = async move { + ::change_reward_denoms(&inner, request).await + }; + Box::pin(fut) + } + } + let accept_compression_encodings = self.accept_compression_encodings; + let send_compression_encodings = self.send_compression_encodings; + let max_decoding_message_size = self.max_decoding_message_size; + let max_encoding_message_size = self.max_encoding_message_size; + let inner = self.inner.clone(); + let fut = async move { + let method = ChangeRewardDenomsSvc(inner); + let codec = tonic::codec::ProstCodec::default(); + let mut grpc = tonic::server::Grpc::new(codec) + .apply_compression_config( + accept_compression_encodings, + send_compression_encodings, + ) + .apply_max_message_size_config( + max_decoding_message_size, + max_encoding_message_size, + ); + let res = grpc.unary(method, req).await; + Ok(res) + }; + Box::pin(fut) + } + _ => { + Box::pin(async move { + Ok( + http::Response::builder() + .status(200) + .header("grpc-status", tonic::Code::Unimplemented as i32) + .header( + http::header::CONTENT_TYPE, + tonic::metadata::GRPC_CONTENT_TYPE, + ) + .body(empty_body()) + .unwrap(), + ) + }) + } + } + } } -} -/// AddressList contains a list of consensus addresses -#[derive(Clone, PartialEq, ::prost::Message)] -pub struct AddressList { - #[prost(bytes = "vec", repeated, tag = "1")] - pub addresses: ::prost::alloc::vec::Vec<::prost::alloc::vec::Vec>, -} -impl ::prost::Name for AddressList { - const NAME: &'static str = "AddressList"; - const PACKAGE: &'static str = "interchain_security.ccv.provider.v1"; - fn full_name() -> ::prost::alloc::string::String { - "interchain_security.ccv.provider.v1.AddressList".into() + impl Clone for MsgServer { + fn clone(&self) -> Self { + let inner = self.inner.clone(); + Self { + inner, + accept_compression_encodings: self.accept_compression_encodings, + send_compression_encodings: self.send_compression_encodings, + max_decoding_message_size: self.max_decoding_message_size, + max_encoding_message_size: self.max_encoding_message_size, + } + } } - fn type_url() -> ::prost::alloc::string::String { - "/interchain_security.ccv.provider.v1.AddressList".into() + impl tonic::server::NamedService for MsgServer { + const NAME: &'static str = "interchain_security.ccv.provider.v1.Msg"; } } +#[allow(clippy::derive_partial_eq_without_eq)] #[derive(Clone, PartialEq, ::prost::Message)] -pub struct ChannelToChain { +pub struct QueryConsumerGenesisRequest { #[prost(string, tag = "1")] - pub channel_id: ::prost::alloc::string::String, - #[prost(string, tag = "2")] - pub chain_id: ::prost::alloc::string::String, -} -impl ::prost::Name for ChannelToChain { - const NAME: &'static str = "ChannelToChain"; - const PACKAGE: &'static str = "interchain_security.ccv.provider.v1"; - fn full_name() -> ::prost::alloc::string::String { - "interchain_security.ccv.provider.v1.ChannelToChain".into() - } - fn type_url() -> ::prost::alloc::string::String { - "/interchain_security.ccv.provider.v1.ChannelToChain".into() - } -} -/// VscUnbondingOps contains the IDs of unbonding operations that are waiting for -/// at least one VSCMaturedPacket with vscID from a consumer chain -#[derive(Clone, PartialEq, ::prost::Message)] -pub struct VscUnbondingOps { - #[prost(uint64, tag = "1")] - pub vsc_id: u64, - #[prost(uint64, repeated, tag = "2")] - pub unbonding_op_ids: ::prost::alloc::vec::Vec, -} -impl ::prost::Name for VscUnbondingOps { - const NAME: &'static str = "VscUnbondingOps"; - const PACKAGE: &'static str = "interchain_security.ccv.provider.v1"; - fn full_name() -> ::prost::alloc::string::String { - "interchain_security.ccv.provider.v1.VscUnbondingOps".into() - } - fn type_url() -> ::prost::alloc::string::String { - "/interchain_security.ccv.provider.v1.VscUnbondingOps".into() - } -} -/// UnbondingOp contains the ids of consumer chains that need to unbond before -/// the unbonding operation with the given ID can unbond -#[derive(Clone, PartialEq, ::prost::Message)] -pub struct UnbondingOp { - #[prost(uint64, tag = "1")] - pub id: u64, - /// consumer chains that are still unbonding - #[prost(string, repeated, tag = "2")] - pub unbonding_consumer_chains: ::prost::alloc::vec::Vec< - ::prost::alloc::string::String, - >, + pub consumer_id: ::prost::alloc::string::String, } -impl ::prost::Name for UnbondingOp { - const NAME: &'static str = "UnbondingOp"; +impl ::prost::Name for QueryConsumerGenesisRequest { + const NAME: &'static str = "QueryConsumerGenesisRequest"; const PACKAGE: &'static str = "interchain_security.ccv.provider.v1"; fn full_name() -> ::prost::alloc::string::String { - "interchain_security.ccv.provider.v1.UnbondingOp".into() + "interchain_security.ccv.provider.v1.QueryConsumerGenesisRequest".into() } fn type_url() -> ::prost::alloc::string::String { - "/interchain_security.ccv.provider.v1.UnbondingOp".into() + "/interchain_security.ccv.provider.v1.QueryConsumerGenesisRequest".into() } } +#[allow(clippy::derive_partial_eq_without_eq)] #[derive(Clone, PartialEq, ::prost::Message)] -pub struct InitTimeoutTimestamp { - #[prost(string, tag = "1")] - pub chain_id: ::prost::alloc::string::String, - #[prost(uint64, tag = "2")] - pub timestamp: u64, -} -impl ::prost::Name for InitTimeoutTimestamp { - const NAME: &'static str = "InitTimeoutTimestamp"; - const PACKAGE: &'static str = "interchain_security.ccv.provider.v1"; - fn full_name() -> ::prost::alloc::string::String { - "interchain_security.ccv.provider.v1.InitTimeoutTimestamp".into() - } - fn type_url() -> ::prost::alloc::string::String { - "/interchain_security.ccv.provider.v1.InitTimeoutTimestamp".into() - } -} -#[derive(Clone, Copy, PartialEq, ::prost::Message)] -pub struct VscSendTimestamp { - #[prost(uint64, tag = "1")] - pub vsc_id: u64, - #[prost(message, optional, tag = "2")] - pub timestamp: ::core::option::Option< - ::tendermint_proto::google::protobuf::Timestamp, - >, +pub struct QueryConsumerGenesisResponse { + #[prost(message, optional, tag = "1")] + pub genesis_state: ::core::option::Option, } -impl ::prost::Name for VscSendTimestamp { - const NAME: &'static str = "VscSendTimestamp"; +impl ::prost::Name for QueryConsumerGenesisResponse { + const NAME: &'static str = "QueryConsumerGenesisResponse"; const PACKAGE: &'static str = "interchain_security.ccv.provider.v1"; fn full_name() -> ::prost::alloc::string::String { - "interchain_security.ccv.provider.v1.VscSendTimestamp".into() + "interchain_security.ccv.provider.v1.QueryConsumerGenesisResponse".into() } fn type_url() -> ::prost::alloc::string::String { - "/interchain_security.ccv.provider.v1.VscSendTimestamp".into() + "/interchain_security.ccv.provider.v1.QueryConsumerGenesisResponse".into() } } -/// ValidatorSetChangePackets is a pb list of ccv.ValidatorSetChangePacketData. +#[allow(clippy::derive_partial_eq_without_eq)] #[derive(Clone, PartialEq, ::prost::Message)] -pub struct ValidatorSetChangePackets { - #[prost(message, repeated, tag = "1")] - pub list: ::prost::alloc::vec::Vec, +pub struct QueryConsumerChainsRequest { + /// The phase of the consumer chains returned (optional) + /// Registered=1|Initialized=2|Launched=3|Stopped=4|Deleted=5 + #[prost(enumeration = "ConsumerPhase", tag = "1")] + pub phase: i32, + #[prost(message, optional, tag = "2")] + pub pagination: ::core::option::Option< + super::super::super::super::cosmos::base::query::v1beta1::PageRequest, + >, } -impl ::prost::Name for ValidatorSetChangePackets { - const NAME: &'static str = "ValidatorSetChangePackets"; +impl ::prost::Name for QueryConsumerChainsRequest { + const NAME: &'static str = "QueryConsumerChainsRequest"; const PACKAGE: &'static str = "interchain_security.ccv.provider.v1"; fn full_name() -> ::prost::alloc::string::String { - "interchain_security.ccv.provider.v1.ValidatorSetChangePackets".into() + "interchain_security.ccv.provider.v1.QueryConsumerChainsRequest".into() } fn type_url() -> ::prost::alloc::string::String { - "/interchain_security.ccv.provider.v1.ValidatorSetChangePackets".into() + "/interchain_security.ccv.provider.v1.QueryConsumerChainsRequest".into() } } -/// MaturedUnbondingOps defines a list of ids corresponding to ids of matured -/// unbonding operations. +#[allow(clippy::derive_partial_eq_without_eq)] #[derive(Clone, PartialEq, ::prost::Message)] -pub struct MaturedUnbondingOps { - #[prost(uint64, repeated, tag = "1")] - pub ids: ::prost::alloc::vec::Vec, +pub struct QueryConsumerChainsResponse { + #[prost(message, repeated, tag = "1")] + pub chains: ::prost::alloc::vec::Vec, + #[prost(message, optional, tag = "2")] + pub pagination: ::core::option::Option< + super::super::super::super::cosmos::base::query::v1beta1::PageResponse, + >, } -impl ::prost::Name for MaturedUnbondingOps { - const NAME: &'static str = "MaturedUnbondingOps"; +impl ::prost::Name for QueryConsumerChainsResponse { + const NAME: &'static str = "QueryConsumerChainsResponse"; const PACKAGE: &'static str = "interchain_security.ccv.provider.v1"; fn full_name() -> ::prost::alloc::string::String { - "interchain_security.ccv.provider.v1.MaturedUnbondingOps".into() + "interchain_security.ccv.provider.v1.QueryConsumerChainsResponse".into() } fn type_url() -> ::prost::alloc::string::String { - "/interchain_security.ccv.provider.v1.MaturedUnbondingOps".into() + "/interchain_security.ccv.provider.v1.QueryConsumerChainsResponse".into() } } -/// ExportedVscSendTimestamps is VscSendTimestamp with chainID info for exporting to genesis +#[allow(clippy::derive_partial_eq_without_eq)] #[derive(Clone, PartialEq, ::prost::Message)] -pub struct ExportedVscSendTimestamp { +pub struct Chain { #[prost(string, tag = "1")] pub chain_id: ::prost::alloc::string::String, - #[prost(message, repeated, tag = "2")] - pub vsc_send_timestamps: ::prost::alloc::vec::Vec, + #[prost(string, tag = "2")] + pub client_id: ::prost::alloc::string::String, + #[prost(uint32, tag = "3")] + pub top_n: u32, + /// If the chain is a Top-N chain, this is the minimum power required to be in the top N. + /// Otherwise, this is -1. + #[prost(int64, tag = "4")] + pub min_power_in_top_n: i64, + /// Corresponds to the maximum power (percentage-wise) a validator can have on the consumer chain. + #[prost(uint32, tag = "5")] + pub validators_power_cap: u32, + /// Corresponds to the maximum number of validators that can validate a consumer chain. + /// Only applicable to Opt In chains. Setting `validator_set_cap` on a Top N chain is a no-op. + #[prost(uint32, tag = "6")] + pub validator_set_cap: u32, + /// Corresponds to a list of provider consensus addresses of validators that are the ONLY ones that can validate + /// the consumer chain. + #[prost(string, repeated, tag = "7")] + pub allowlist: ::prost::alloc::vec::Vec<::prost::alloc::string::String>, + /// Corresponds to a list of provider consensus addresses of validators that CANNOT validate the consumer chain. + #[prost(string, repeated, tag = "8")] + pub denylist: ::prost::alloc::vec::Vec<::prost::alloc::string::String>, + /// The phase the consumer chain + #[prost(string, tag = "9")] + pub phase: ::prost::alloc::string::String, + /// The metadata of the consumer chain + #[prost(message, optional, tag = "10")] + pub metadata: ::core::option::Option, + /// Corresponds to the minimal amount of (provider chain) stake required to validate on the consumer chain. + #[prost(uint64, tag = "11")] + pub min_stake: u64, + /// Corresponds to whether inactive validators are allowed to validate the consumer chain. + #[prost(bool, tag = "12")] + pub allow_inactive_vals: bool, + #[prost(string, tag = "13")] + pub consumer_id: ::prost::alloc::string::String, } -impl ::prost::Name for ExportedVscSendTimestamp { - const NAME: &'static str = "ExportedVscSendTimestamp"; +impl ::prost::Name for Chain { + const NAME: &'static str = "Chain"; const PACKAGE: &'static str = "interchain_security.ccv.provider.v1"; fn full_name() -> ::prost::alloc::string::String { - "interchain_security.ccv.provider.v1.ExportedVscSendTimestamp".into() + "interchain_security.ccv.provider.v1.Chain".into() } fn type_url() -> ::prost::alloc::string::String { - "/interchain_security.ccv.provider.v1.ExportedVscSendTimestamp".into() + "/interchain_security.ccv.provider.v1.Chain".into() } } +#[allow(clippy::derive_partial_eq_without_eq)] #[derive(Clone, PartialEq, ::prost::Message)] -pub struct KeyAssignmentReplacement { - #[prost(bytes = "vec", tag = "1")] - pub provider_addr: ::prost::alloc::vec::Vec, - #[prost(message, optional, tag = "2")] - pub prev_c_key: ::core::option::Option<::tendermint_proto::crypto::PublicKey>, - #[prost(int64, tag = "3")] - pub power: i64, +pub struct QueryValidatorConsumerAddrRequest { + /// The consensus address of the validator on the provider chain + #[prost(string, tag = "1")] + pub provider_address: ::prost::alloc::string::String, + /// The id of the consumer chain + #[prost(string, tag = "2")] + pub consumer_id: ::prost::alloc::string::String, } -impl ::prost::Name for KeyAssignmentReplacement { - const NAME: &'static str = "KeyAssignmentReplacement"; +impl ::prost::Name for QueryValidatorConsumerAddrRequest { + const NAME: &'static str = "QueryValidatorConsumerAddrRequest"; const PACKAGE: &'static str = "interchain_security.ccv.provider.v1"; fn full_name() -> ::prost::alloc::string::String { - "interchain_security.ccv.provider.v1.KeyAssignmentReplacement".into() + "interchain_security.ccv.provider.v1.QueryValidatorConsumerAddrRequest".into() } fn type_url() -> ::prost::alloc::string::String { - "/interchain_security.ccv.provider.v1.KeyAssignmentReplacement".into() + "/interchain_security.ccv.provider.v1.QueryValidatorConsumerAddrRequest".into() } } -/// Used to serialize the ValidatorConsumerPubKey index from key assignment -/// ValidatorConsumerPubKey: (chainID, providerAddr consAddr) -> consumerKey -/// tmprotocrypto.PublicKey +#[allow(clippy::derive_partial_eq_without_eq)] #[derive(Clone, PartialEq, ::prost::Message)] -pub struct ValidatorConsumerPubKey { +pub struct QueryValidatorConsumerAddrResponse { + /// The address of the validator on the consumer chain #[prost(string, tag = "1")] - pub chain_id: ::prost::alloc::string::String, - #[prost(bytes = "vec", tag = "2")] - pub provider_addr: ::prost::alloc::vec::Vec, - #[prost(message, optional, tag = "3")] - pub consumer_key: ::core::option::Option<::tendermint_proto::crypto::PublicKey>, + pub consumer_address: ::prost::alloc::string::String, } -impl ::prost::Name for ValidatorConsumerPubKey { - const NAME: &'static str = "ValidatorConsumerPubKey"; +impl ::prost::Name for QueryValidatorConsumerAddrResponse { + const NAME: &'static str = "QueryValidatorConsumerAddrResponse"; const PACKAGE: &'static str = "interchain_security.ccv.provider.v1"; fn full_name() -> ::prost::alloc::string::String { - "interchain_security.ccv.provider.v1.ValidatorConsumerPubKey".into() + "interchain_security.ccv.provider.v1.QueryValidatorConsumerAddrResponse".into() } fn type_url() -> ::prost::alloc::string::String { - "/interchain_security.ccv.provider.v1.ValidatorConsumerPubKey".into() + "/interchain_security.ccv.provider.v1.QueryValidatorConsumerAddrResponse".into() } } -/// Used to serialize the ValidatorConsumerAddr index from key assignment -/// ValidatorByConsumerAddr: (chainID, consumerAddr consAddr) -> providerAddr -/// consAddr +#[allow(clippy::derive_partial_eq_without_eq)] #[derive(Clone, PartialEq, ::prost::Message)] -pub struct ValidatorByConsumerAddr { +pub struct QueryValidatorProviderAddrRequest { + /// The consensus address of the validator on the consumer chain #[prost(string, tag = "1")] - pub chain_id: ::prost::alloc::string::String, - #[prost(bytes = "vec", tag = "2")] - pub consumer_addr: ::prost::alloc::vec::Vec, - #[prost(bytes = "vec", tag = "3")] - pub provider_addr: ::prost::alloc::vec::Vec, + pub consumer_address: ::prost::alloc::string::String, + /// The id of the consumer chain + #[prost(string, tag = "2")] + pub consumer_id: ::prost::alloc::string::String, } -impl ::prost::Name for ValidatorByConsumerAddr { - const NAME: &'static str = "ValidatorByConsumerAddr"; +impl ::prost::Name for QueryValidatorProviderAddrRequest { + const NAME: &'static str = "QueryValidatorProviderAddrRequest"; const PACKAGE: &'static str = "interchain_security.ccv.provider.v1"; fn full_name() -> ::prost::alloc::string::String { - "interchain_security.ccv.provider.v1.ValidatorByConsumerAddr".into() + "interchain_security.ccv.provider.v1.QueryValidatorProviderAddrRequest".into() } fn type_url() -> ::prost::alloc::string::String { - "/interchain_security.ccv.provider.v1.ValidatorByConsumerAddr".into() + "/interchain_security.ccv.provider.v1.QueryValidatorProviderAddrRequest".into() } } -/// Used to serialize the ConsumerAddrsToPrune index from key assignment -/// ConsumerAddrsToPrune: (chainID, vscID uint64) -> consumerAddrs AddressList +#[allow(clippy::derive_partial_eq_without_eq)] #[derive(Clone, PartialEq, ::prost::Message)] -pub struct ConsumerAddrsToPrune { +pub struct QueryValidatorProviderAddrResponse { + /// The address of the validator on the provider chain #[prost(string, tag = "1")] - pub chain_id: ::prost::alloc::string::String, - #[prost(uint64, tag = "2")] - pub vsc_id: u64, - #[prost(message, optional, tag = "3")] - pub consumer_addrs: ::core::option::Option, + pub provider_address: ::prost::alloc::string::String, } -impl ::prost::Name for ConsumerAddrsToPrune { - const NAME: &'static str = "ConsumerAddrsToPrune"; +impl ::prost::Name for QueryValidatorProviderAddrResponse { + const NAME: &'static str = "QueryValidatorProviderAddrResponse"; const PACKAGE: &'static str = "interchain_security.ccv.provider.v1"; fn full_name() -> ::prost::alloc::string::String { - "interchain_security.ccv.provider.v1.ConsumerAddrsToPrune".into() + "interchain_security.ccv.provider.v1.QueryValidatorProviderAddrResponse".into() } fn type_url() -> ::prost::alloc::string::String { - "/interchain_security.ccv.provider.v1.ConsumerAddrsToPrune".into() + "/interchain_security.ccv.provider.v1.QueryValidatorProviderAddrResponse".into() } } -#[derive(Clone, PartialEq, ::prost::Message)] -pub struct QueryConsumerGenesisRequest { - #[prost(string, tag = "1")] - pub chain_id: ::prost::alloc::string::String, -} -impl ::prost::Name for QueryConsumerGenesisRequest { - const NAME: &'static str = "QueryConsumerGenesisRequest"; +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, Copy, PartialEq, ::prost::Message)] +pub struct QueryThrottleStateRequest {} +impl ::prost::Name for QueryThrottleStateRequest { + const NAME: &'static str = "QueryThrottleStateRequest"; const PACKAGE: &'static str = "interchain_security.ccv.provider.v1"; fn full_name() -> ::prost::alloc::string::String { - "interchain_security.ccv.provider.v1.QueryConsumerGenesisRequest".into() + "interchain_security.ccv.provider.v1.QueryThrottleStateRequest".into() } fn type_url() -> ::prost::alloc::string::String { - "/interchain_security.ccv.provider.v1.QueryConsumerGenesisRequest".into() + "/interchain_security.ccv.provider.v1.QueryThrottleStateRequest".into() } } -#[derive(Clone, PartialEq, ::prost::Message)] -pub struct QueryConsumerGenesisResponse { - #[prost(message, optional, tag = "1")] - pub genesis_state: ::core::option::Option, +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, Copy, PartialEq, ::prost::Message)] +pub struct QueryThrottleStateResponse { + /// current slash_meter state + #[prost(int64, tag = "1")] + pub slash_meter: i64, + /// allowance of voting power units (int) that the slash meter is given per + /// replenish period this also serves as the max value for the meter. + #[prost(int64, tag = "2")] + pub slash_meter_allowance: i64, + /// next time the slash meter could potentially be replenished, iff it's not + /// full + #[prost(message, optional, tag = "3")] + pub next_replenish_candidate: ::core::option::Option< + ::tendermint_proto::google::protobuf::Timestamp, + >, } -impl ::prost::Name for QueryConsumerGenesisResponse { - const NAME: &'static str = "QueryConsumerGenesisResponse"; +impl ::prost::Name for QueryThrottleStateResponse { + const NAME: &'static str = "QueryThrottleStateResponse"; const PACKAGE: &'static str = "interchain_security.ccv.provider.v1"; fn full_name() -> ::prost::alloc::string::String { - "interchain_security.ccv.provider.v1.QueryConsumerGenesisResponse".into() + "interchain_security.ccv.provider.v1.QueryThrottleStateResponse".into() } fn type_url() -> ::prost::alloc::string::String { - "/interchain_security.ccv.provider.v1.QueryConsumerGenesisResponse".into() + "/interchain_security.ccv.provider.v1.QueryThrottleStateResponse".into() } } +#[allow(clippy::derive_partial_eq_without_eq)] #[derive(Clone, Copy, PartialEq, ::prost::Message)] -pub struct QueryConsumerChainsRequest {} -impl ::prost::Name for QueryConsumerChainsRequest { - const NAME: &'static str = "QueryConsumerChainsRequest"; +pub struct QueryRegisteredConsumerRewardDenomsRequest {} +impl ::prost::Name for QueryRegisteredConsumerRewardDenomsRequest { + const NAME: &'static str = "QueryRegisteredConsumerRewardDenomsRequest"; const PACKAGE: &'static str = "interchain_security.ccv.provider.v1"; fn full_name() -> ::prost::alloc::string::String { - "interchain_security.ccv.provider.v1.QueryConsumerChainsRequest".into() + "interchain_security.ccv.provider.v1.QueryRegisteredConsumerRewardDenomsRequest" + .into() } fn type_url() -> ::prost::alloc::string::String { - "/interchain_security.ccv.provider.v1.QueryConsumerChainsRequest".into() + "/interchain_security.ccv.provider.v1.QueryRegisteredConsumerRewardDenomsRequest" + .into() } } +#[allow(clippy::derive_partial_eq_without_eq)] #[derive(Clone, PartialEq, ::prost::Message)] -pub struct QueryConsumerChainsResponse { - #[prost(message, repeated, tag = "1")] - pub chains: ::prost::alloc::vec::Vec, +pub struct QueryRegisteredConsumerRewardDenomsResponse { + #[prost(string, repeated, tag = "1")] + pub denoms: ::prost::alloc::vec::Vec<::prost::alloc::string::String>, } -impl ::prost::Name for QueryConsumerChainsResponse { - const NAME: &'static str = "QueryConsumerChainsResponse"; +impl ::prost::Name for QueryRegisteredConsumerRewardDenomsResponse { + const NAME: &'static str = "QueryRegisteredConsumerRewardDenomsResponse"; const PACKAGE: &'static str = "interchain_security.ccv.provider.v1"; fn full_name() -> ::prost::alloc::string::String { - "interchain_security.ccv.provider.v1.QueryConsumerChainsResponse".into() + "interchain_security.ccv.provider.v1.QueryRegisteredConsumerRewardDenomsResponse" + .into() } fn type_url() -> ::prost::alloc::string::String { - "/interchain_security.ccv.provider.v1.QueryConsumerChainsResponse".into() + "/interchain_security.ccv.provider.v1.QueryRegisteredConsumerRewardDenomsResponse" + .into() } } -#[derive(Clone, Copy, PartialEq, ::prost::Message)] -pub struct QueryConsumerChainStartProposalsRequest {} -impl ::prost::Name for QueryConsumerChainStartProposalsRequest { - const NAME: &'static str = "QueryConsumerChainStartProposalsRequest"; +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct QueryAllPairsValConsAddrByConsumerRequest { + /// The id of the consumer chain + #[prost(string, tag = "1")] + pub consumer_id: ::prost::alloc::string::String, +} +impl ::prost::Name for QueryAllPairsValConsAddrByConsumerRequest { + const NAME: &'static str = "QueryAllPairsValConsAddrByConsumerRequest"; const PACKAGE: &'static str = "interchain_security.ccv.provider.v1"; fn full_name() -> ::prost::alloc::string::String { - "interchain_security.ccv.provider.v1.QueryConsumerChainStartProposalsRequest" + "interchain_security.ccv.provider.v1.QueryAllPairsValConsAddrByConsumerRequest" .into() } fn type_url() -> ::prost::alloc::string::String { - "/interchain_security.ccv.provider.v1.QueryConsumerChainStartProposalsRequest" + "/interchain_security.ccv.provider.v1.QueryAllPairsValConsAddrByConsumerRequest" .into() } } +#[allow(clippy::derive_partial_eq_without_eq)] #[derive(Clone, PartialEq, ::prost::Message)] -pub struct QueryConsumerChainStartProposalsResponse { - #[prost(message, optional, tag = "1")] - pub proposals: ::core::option::Option, +pub struct QueryAllPairsValConsAddrByConsumerResponse { + #[prost(message, repeated, tag = "1")] + pub pair_val_con_addr: ::prost::alloc::vec::Vec, } -impl ::prost::Name for QueryConsumerChainStartProposalsResponse { - const NAME: &'static str = "QueryConsumerChainStartProposalsResponse"; +impl ::prost::Name for QueryAllPairsValConsAddrByConsumerResponse { + const NAME: &'static str = "QueryAllPairsValConsAddrByConsumerResponse"; const PACKAGE: &'static str = "interchain_security.ccv.provider.v1"; fn full_name() -> ::prost::alloc::string::String { - "interchain_security.ccv.provider.v1.QueryConsumerChainStartProposalsResponse" + "interchain_security.ccv.provider.v1.QueryAllPairsValConsAddrByConsumerResponse" .into() } fn type_url() -> ::prost::alloc::string::String { - "/interchain_security.ccv.provider.v1.QueryConsumerChainStartProposalsResponse" + "/interchain_security.ccv.provider.v1.QueryAllPairsValConsAddrByConsumerResponse" .into() } } +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct PairValConAddrProviderAndConsumer { + /// The consensus address of the validator on the provider chain + #[prost(string, tag = "1")] + pub provider_address: ::prost::alloc::string::String, + /// The consensus address of the validator on the consumer chain + #[prost(string, tag = "2")] + pub consumer_address: ::prost::alloc::string::String, + #[prost(message, optional, tag = "3")] + pub consumer_key: ::core::option::Option<::tendermint_proto::crypto::PublicKey>, +} +impl ::prost::Name for PairValConAddrProviderAndConsumer { + const NAME: &'static str = "PairValConAddrProviderAndConsumer"; + const PACKAGE: &'static str = "interchain_security.ccv.provider.v1"; + fn full_name() -> ::prost::alloc::string::String { + "interchain_security.ccv.provider.v1.PairValConAddrProviderAndConsumer".into() + } + fn type_url() -> ::prost::alloc::string::String { + "/interchain_security.ccv.provider.v1.PairValConAddrProviderAndConsumer".into() + } +} +#[allow(clippy::derive_partial_eq_without_eq)] #[derive(Clone, Copy, PartialEq, ::prost::Message)] -pub struct QueryConsumerChainStopProposalsRequest {} -impl ::prost::Name for QueryConsumerChainStopProposalsRequest { - const NAME: &'static str = "QueryConsumerChainStopProposalsRequest"; +pub struct QueryParamsRequest {} +impl ::prost::Name for QueryParamsRequest { + const NAME: &'static str = "QueryParamsRequest"; const PACKAGE: &'static str = "interchain_security.ccv.provider.v1"; fn full_name() -> ::prost::alloc::string::String { - "interchain_security.ccv.provider.v1.QueryConsumerChainStopProposalsRequest" - .into() + "interchain_security.ccv.provider.v1.QueryParamsRequest".into() } fn type_url() -> ::prost::alloc::string::String { - "/interchain_security.ccv.provider.v1.QueryConsumerChainStopProposalsRequest" - .into() + "/interchain_security.ccv.provider.v1.QueryParamsRequest".into() } } +#[allow(clippy::derive_partial_eq_without_eq)] #[derive(Clone, PartialEq, ::prost::Message)] -pub struct QueryConsumerChainStopProposalsResponse { +pub struct QueryParamsResponse { #[prost(message, optional, tag = "1")] - pub proposals: ::core::option::Option, + pub params: ::core::option::Option, +} +impl ::prost::Name for QueryParamsResponse { + const NAME: &'static str = "QueryParamsResponse"; + const PACKAGE: &'static str = "interchain_security.ccv.provider.v1"; + fn full_name() -> ::prost::alloc::string::String { + "interchain_security.ccv.provider.v1.QueryParamsResponse".into() + } + fn type_url() -> ::prost::alloc::string::String { + "/interchain_security.ccv.provider.v1.QueryParamsResponse".into() + } +} +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct QueryConsumerChainOptedInValidatorsRequest { + #[prost(string, tag = "1")] + pub consumer_id: ::prost::alloc::string::String, } -impl ::prost::Name for QueryConsumerChainStopProposalsResponse { - const NAME: &'static str = "QueryConsumerChainStopProposalsResponse"; +impl ::prost::Name for QueryConsumerChainOptedInValidatorsRequest { + const NAME: &'static str = "QueryConsumerChainOptedInValidatorsRequest"; const PACKAGE: &'static str = "interchain_security.ccv.provider.v1"; fn full_name() -> ::prost::alloc::string::String { - "interchain_security.ccv.provider.v1.QueryConsumerChainStopProposalsResponse" + "interchain_security.ccv.provider.v1.QueryConsumerChainOptedInValidatorsRequest" .into() } fn type_url() -> ::prost::alloc::string::String { - "/interchain_security.ccv.provider.v1.QueryConsumerChainStopProposalsResponse" + "/interchain_security.ccv.provider.v1.QueryConsumerChainOptedInValidatorsRequest" .into() } } +#[allow(clippy::derive_partial_eq_without_eq)] #[derive(Clone, PartialEq, ::prost::Message)] -pub struct Chain { - #[prost(string, tag = "1")] - pub chain_id: ::prost::alloc::string::String, - #[prost(string, tag = "2")] - pub client_id: ::prost::alloc::string::String, +pub struct QueryConsumerChainOptedInValidatorsResponse { + /// The consensus addresses of the validators on the provider chain + #[prost(string, repeated, tag = "1")] + pub validators_provider_addresses: ::prost::alloc::vec::Vec< + ::prost::alloc::string::String, + >, } -impl ::prost::Name for Chain { - const NAME: &'static str = "Chain"; +impl ::prost::Name for QueryConsumerChainOptedInValidatorsResponse { + const NAME: &'static str = "QueryConsumerChainOptedInValidatorsResponse"; const PACKAGE: &'static str = "interchain_security.ccv.provider.v1"; fn full_name() -> ::prost::alloc::string::String { - "interchain_security.ccv.provider.v1.Chain".into() + "interchain_security.ccv.provider.v1.QueryConsumerChainOptedInValidatorsResponse" + .into() } fn type_url() -> ::prost::alloc::string::String { - "/interchain_security.ccv.provider.v1.Chain".into() + "/interchain_security.ccv.provider.v1.QueryConsumerChainOptedInValidatorsResponse" + .into() } } +#[allow(clippy::derive_partial_eq_without_eq)] #[derive(Clone, PartialEq, ::prost::Message)] -pub struct QueryValidatorConsumerAddrRequest { - /// The id of the consumer chain +pub struct QueryConsumerValidatorsRequest { #[prost(string, tag = "1")] - pub chain_id: ::prost::alloc::string::String, - /// The consensus address of the validator on the provider chain - #[prost(string, tag = "2")] - pub provider_address: ::prost::alloc::string::String, + pub consumer_id: ::prost::alloc::string::String, } -impl ::prost::Name for QueryValidatorConsumerAddrRequest { - const NAME: &'static str = "QueryValidatorConsumerAddrRequest"; +impl ::prost::Name for QueryConsumerValidatorsRequest { + const NAME: &'static str = "QueryConsumerValidatorsRequest"; const PACKAGE: &'static str = "interchain_security.ccv.provider.v1"; fn full_name() -> ::prost::alloc::string::String { - "interchain_security.ccv.provider.v1.QueryValidatorConsumerAddrRequest".into() + "interchain_security.ccv.provider.v1.QueryConsumerValidatorsRequest".into() } fn type_url() -> ::prost::alloc::string::String { - "/interchain_security.ccv.provider.v1.QueryValidatorConsumerAddrRequest".into() + "/interchain_security.ccv.provider.v1.QueryConsumerValidatorsRequest".into() } } +#[allow(clippy::derive_partial_eq_without_eq)] #[derive(Clone, PartialEq, ::prost::Message)] -pub struct QueryValidatorConsumerAddrResponse { - /// The address of the validator on the consumer chain +pub struct QueryConsumerValidatorsValidator { + /// The consensus address of the validator on the provider chain #[prost(string, tag = "1")] - pub consumer_address: ::prost::alloc::string::String, + pub provider_address: ::prost::alloc::string::String, + /// The consumer public key of the validator used on the consumer chain + #[prost(message, optional, tag = "2")] + pub consumer_key: ::core::option::Option<::tendermint_proto::crypto::PublicKey>, + /// \[DEPRECATED\] use `consumer_power` instead + #[deprecated] + #[prost(int64, tag = "3")] + pub power: i64, + /// \[DEPRECATED\] use `consumer_commission_rate` instead + #[deprecated] + #[prost(string, tag = "4")] + pub rate: ::prost::alloc::string::String, + /// The power of the validator used on the consumer chain + #[prost(int64, tag = "5")] + pub consumer_power: i64, + /// The rate to charge delegators on the consumer chain, as a fraction + #[prost(string, tag = "6")] + pub consumer_commission_rate: ::prost::alloc::string::String, + /// The rate to charge delegators on the provider chain, as a fraction + #[prost(string, tag = "7")] + pub provider_commission_rate: ::prost::alloc::string::String, + /// description defines the description terms for the validator + #[prost(message, optional, tag = "8")] + pub description: ::core::option::Option< + super::super::super::super::cosmos::staking::v1beta1::Description, + >, + /// provider_operator_address defines the address of the validator's operator + #[prost(string, tag = "9")] + pub provider_operator_address: ::prost::alloc::string::String, + /// jailed defined whether the validator has been jailed from bonded status or not. + #[prost(bool, tag = "10")] + pub jailed: bool, + /// status is the validator status (bonded/unbonding/unbonded). + #[prost( + enumeration = "super::super::super::super::cosmos::staking::v1beta1::BondStatus", + tag = "11" + )] + pub status: i32, + /// provider_tokens defines the delegated tokens (incl. self-delegation). + #[prost(string, tag = "12")] + pub provider_tokens: ::prost::alloc::string::String, + /// The power of the validator used on the provider chain + #[prost(int64, tag = "13")] + pub provider_power: i64, + /// validates_current_epoch defines whether the validator has to validate for the current epoch or not + #[prost(bool, tag = "14")] + pub validates_current_epoch: bool, } -impl ::prost::Name for QueryValidatorConsumerAddrResponse { - const NAME: &'static str = "QueryValidatorConsumerAddrResponse"; +impl ::prost::Name for QueryConsumerValidatorsValidator { + const NAME: &'static str = "QueryConsumerValidatorsValidator"; const PACKAGE: &'static str = "interchain_security.ccv.provider.v1"; fn full_name() -> ::prost::alloc::string::String { - "interchain_security.ccv.provider.v1.QueryValidatorConsumerAddrResponse".into() + "interchain_security.ccv.provider.v1.QueryConsumerValidatorsValidator".into() } fn type_url() -> ::prost::alloc::string::String { - "/interchain_security.ccv.provider.v1.QueryValidatorConsumerAddrResponse".into() + "/interchain_security.ccv.provider.v1.QueryConsumerValidatorsValidator".into() } } +#[allow(clippy::derive_partial_eq_without_eq)] #[derive(Clone, PartialEq, ::prost::Message)] -pub struct QueryValidatorProviderAddrRequest { - /// The id of the provider chain - #[prost(string, tag = "1")] - pub chain_id: ::prost::alloc::string::String, - /// The consensus address of the validator on the consumer chain - #[prost(string, tag = "2")] - pub consumer_address: ::prost::alloc::string::String, +pub struct QueryConsumerValidatorsResponse { + #[prost(message, repeated, tag = "1")] + pub validators: ::prost::alloc::vec::Vec, } -impl ::prost::Name for QueryValidatorProviderAddrRequest { - const NAME: &'static str = "QueryValidatorProviderAddrRequest"; +impl ::prost::Name for QueryConsumerValidatorsResponse { + const NAME: &'static str = "QueryConsumerValidatorsResponse"; const PACKAGE: &'static str = "interchain_security.ccv.provider.v1"; fn full_name() -> ::prost::alloc::string::String { - "interchain_security.ccv.provider.v1.QueryValidatorProviderAddrRequest".into() + "interchain_security.ccv.provider.v1.QueryConsumerValidatorsResponse".into() } fn type_url() -> ::prost::alloc::string::String { - "/interchain_security.ccv.provider.v1.QueryValidatorProviderAddrRequest".into() + "/interchain_security.ccv.provider.v1.QueryConsumerValidatorsResponse".into() } } +#[allow(clippy::derive_partial_eq_without_eq)] #[derive(Clone, PartialEq, ::prost::Message)] -pub struct QueryValidatorProviderAddrResponse { - /// The address of the validator on the provider chain +pub struct QueryConsumerChainsValidatorHasToValidateRequest { + /// The consensus address of the validator on the provider chain #[prost(string, tag = "1")] pub provider_address: ::prost::alloc::string::String, } -impl ::prost::Name for QueryValidatorProviderAddrResponse { - const NAME: &'static str = "QueryValidatorProviderAddrResponse"; +impl ::prost::Name for QueryConsumerChainsValidatorHasToValidateRequest { + const NAME: &'static str = "QueryConsumerChainsValidatorHasToValidateRequest"; const PACKAGE: &'static str = "interchain_security.ccv.provider.v1"; fn full_name() -> ::prost::alloc::string::String { - "interchain_security.ccv.provider.v1.QueryValidatorProviderAddrResponse".into() + "interchain_security.ccv.provider.v1.QueryConsumerChainsValidatorHasToValidateRequest" + .into() } fn type_url() -> ::prost::alloc::string::String { - "/interchain_security.ccv.provider.v1.QueryValidatorProviderAddrResponse".into() + "/interchain_security.ccv.provider.v1.QueryConsumerChainsValidatorHasToValidateRequest" + .into() } } -#[derive(Clone, Copy, PartialEq, ::prost::Message)] -pub struct QueryThrottleStateRequest {} -impl ::prost::Name for QueryThrottleStateRequest { - const NAME: &'static str = "QueryThrottleStateRequest"; +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct QueryConsumerChainsValidatorHasToValidateResponse { + #[prost(string, repeated, tag = "1")] + pub consumer_ids: ::prost::alloc::vec::Vec<::prost::alloc::string::String>, +} +impl ::prost::Name for QueryConsumerChainsValidatorHasToValidateResponse { + const NAME: &'static str = "QueryConsumerChainsValidatorHasToValidateResponse"; const PACKAGE: &'static str = "interchain_security.ccv.provider.v1"; fn full_name() -> ::prost::alloc::string::String { - "interchain_security.ccv.provider.v1.QueryThrottleStateRequest".into() + "interchain_security.ccv.provider.v1.QueryConsumerChainsValidatorHasToValidateResponse" + .into() } fn type_url() -> ::prost::alloc::string::String { - "/interchain_security.ccv.provider.v1.QueryThrottleStateRequest".into() + "/interchain_security.ccv.provider.v1.QueryConsumerChainsValidatorHasToValidateResponse" + .into() } } +#[allow(clippy::derive_partial_eq_without_eq)] #[derive(Clone, PartialEq, ::prost::Message)] -pub struct QueryThrottleStateResponse { - /// current slash_meter state - #[prost(int64, tag = "1")] - pub slash_meter: i64, - /// allowance of voting power units (int) that the slash meter is given per - /// replenish period this also serves as the max value for the meter. - #[prost(int64, tag = "2")] - pub slash_meter_allowance: i64, - /// next time the slash meter could potentially be replenished, iff it's not - /// full - #[prost(message, optional, tag = "3")] - pub next_replenish_candidate: ::core::option::Option< - ::tendermint_proto::google::protobuf::Timestamp, - >, - /// data relevant to currently throttled slash packets - #[prost(message, repeated, tag = "4")] - pub packets: ::prost::alloc::vec::Vec, +pub struct QueryValidatorConsumerCommissionRateRequest { + #[prost(string, tag = "1")] + pub consumer_id: ::prost::alloc::string::String, + /// The consensus address of the validator on the provider chain + #[prost(string, tag = "2")] + pub provider_address: ::prost::alloc::string::String, } -impl ::prost::Name for QueryThrottleStateResponse { - const NAME: &'static str = "QueryThrottleStateResponse"; +impl ::prost::Name for QueryValidatorConsumerCommissionRateRequest { + const NAME: &'static str = "QueryValidatorConsumerCommissionRateRequest"; const PACKAGE: &'static str = "interchain_security.ccv.provider.v1"; fn full_name() -> ::prost::alloc::string::String { - "interchain_security.ccv.provider.v1.QueryThrottleStateResponse".into() + "interchain_security.ccv.provider.v1.QueryValidatorConsumerCommissionRateRequest" + .into() } fn type_url() -> ::prost::alloc::string::String { - "/interchain_security.ccv.provider.v1.QueryThrottleStateResponse".into() + "/interchain_security.ccv.provider.v1.QueryValidatorConsumerCommissionRateRequest" + .into() } } +#[allow(clippy::derive_partial_eq_without_eq)] #[derive(Clone, PartialEq, ::prost::Message)] -pub struct QueryThrottledConsumerPacketDataRequest { +pub struct QueryValidatorConsumerCommissionRateResponse { + /// The rate to charge delegators on the consumer chain, as a fraction #[prost(string, tag = "1")] - pub chain_id: ::prost::alloc::string::String, + pub rate: ::prost::alloc::string::String, } -impl ::prost::Name for QueryThrottledConsumerPacketDataRequest { - const NAME: &'static str = "QueryThrottledConsumerPacketDataRequest"; +impl ::prost::Name for QueryValidatorConsumerCommissionRateResponse { + const NAME: &'static str = "QueryValidatorConsumerCommissionRateResponse"; const PACKAGE: &'static str = "interchain_security.ccv.provider.v1"; fn full_name() -> ::prost::alloc::string::String { - "interchain_security.ccv.provider.v1.QueryThrottledConsumerPacketDataRequest" + "interchain_security.ccv.provider.v1.QueryValidatorConsumerCommissionRateResponse" .into() } fn type_url() -> ::prost::alloc::string::String { - "/interchain_security.ccv.provider.v1.QueryThrottledConsumerPacketDataRequest" + "/interchain_security.ccv.provider.v1.QueryValidatorConsumerCommissionRateResponse" .into() } } -#[derive(Clone, PartialEq, ::prost::Message)] -pub struct QueryThrottledConsumerPacketDataResponse { - #[prost(string, tag = "1")] - pub chain_id: ::prost::alloc::string::String, - #[prost(uint64, tag = "2")] - pub size: u64, - #[prost(message, repeated, tag = "3")] - pub packet_data_instances: ::prost::alloc::vec::Vec, -} -impl ::prost::Name for QueryThrottledConsumerPacketDataResponse { - const NAME: &'static str = "QueryThrottledConsumerPacketDataResponse"; +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, Copy, PartialEq, ::prost::Message)] +pub struct QueryBlocksUntilNextEpochRequest {} +impl ::prost::Name for QueryBlocksUntilNextEpochRequest { + const NAME: &'static str = "QueryBlocksUntilNextEpochRequest"; const PACKAGE: &'static str = "interchain_security.ccv.provider.v1"; fn full_name() -> ::prost::alloc::string::String { - "interchain_security.ccv.provider.v1.QueryThrottledConsumerPacketDataResponse" - .into() + "interchain_security.ccv.provider.v1.QueryBlocksUntilNextEpochRequest".into() } fn type_url() -> ::prost::alloc::string::String { - "/interchain_security.ccv.provider.v1.QueryThrottledConsumerPacketDataResponse" - .into() + "/interchain_security.ccv.provider.v1.QueryBlocksUntilNextEpochRequest".into() } } -/// A query wrapper type for the global entry and data relevant to a throttled -/// slash packet. -#[derive(Clone, PartialEq, ::prost::Message)] -pub struct ThrottledSlashPacket { - #[prost(message, optional, tag = "1")] - pub global_entry: ::core::option::Option, - #[prost(message, optional, tag = "2")] - pub data: ::core::option::Option, +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, Copy, PartialEq, ::prost::Message)] +pub struct QueryBlocksUntilNextEpochResponse { + /// The number of blocks until the next epoch starts + #[prost(uint64, tag = "1")] + pub blocks_until_next_epoch: u64, } -impl ::prost::Name for ThrottledSlashPacket { - const NAME: &'static str = "ThrottledSlashPacket"; +impl ::prost::Name for QueryBlocksUntilNextEpochResponse { + const NAME: &'static str = "QueryBlocksUntilNextEpochResponse"; const PACKAGE: &'static str = "interchain_security.ccv.provider.v1"; fn full_name() -> ::prost::alloc::string::String { - "interchain_security.ccv.provider.v1.ThrottledSlashPacket".into() + "interchain_security.ccv.provider.v1.QueryBlocksUntilNextEpochResponse".into() } fn type_url() -> ::prost::alloc::string::String { - "/interchain_security.ccv.provider.v1.ThrottledSlashPacket".into() + "/interchain_security.ccv.provider.v1.QueryBlocksUntilNextEpochResponse".into() } } -/// ThrottledPacketDataWrapper contains either SlashPacketData or -/// VSCMaturedPacketData +#[allow(clippy::derive_partial_eq_without_eq)] #[derive(Clone, PartialEq, ::prost::Message)] -pub struct ThrottledPacketDataWrapper { - #[prost(oneof = "throttled_packet_data_wrapper::Data", tags = "1, 2")] - pub data: ::core::option::Option, +pub struct QueryConsumerIdFromClientIdRequest { + /// the client id (on the provider) that is tracking the consumer chain + /// the client id can be found from the consumer chain by querying (i.e., `query ccvconsumer provider-info`) + #[prost(string, tag = "1")] + pub client_id: ::prost::alloc::string::String, } -/// Nested message and enum types in `ThrottledPacketDataWrapper`. -pub mod throttled_packet_data_wrapper { - #[derive(Clone, PartialEq, ::prost::Oneof)] - pub enum Data { - #[prost(message, tag = "1")] - SlashPacket(super::super::super::v1::SlashPacketData), - #[prost(message, tag = "2")] - VscMaturedPacket(super::super::super::v1::VscMaturedPacketData), +impl ::prost::Name for QueryConsumerIdFromClientIdRequest { + const NAME: &'static str = "QueryConsumerIdFromClientIdRequest"; + const PACKAGE: &'static str = "interchain_security.ccv.provider.v1"; + fn full_name() -> ::prost::alloc::string::String { + "interchain_security.ccv.provider.v1.QueryConsumerIdFromClientIdRequest".into() + } + fn type_url() -> ::prost::alloc::string::String { + "/interchain_security.ccv.provider.v1.QueryConsumerIdFromClientIdRequest".into() } } -impl ::prost::Name for ThrottledPacketDataWrapper { - const NAME: &'static str = "ThrottledPacketDataWrapper"; +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct QueryConsumerIdFromClientIdResponse { + /// the consumer id of the chain associated with this client id + #[prost(string, tag = "1")] + pub consumer_id: ::prost::alloc::string::String, +} +impl ::prost::Name for QueryConsumerIdFromClientIdResponse { + const NAME: &'static str = "QueryConsumerIdFromClientIdResponse"; const PACKAGE: &'static str = "interchain_security.ccv.provider.v1"; fn full_name() -> ::prost::alloc::string::String { - "interchain_security.ccv.provider.v1.ThrottledPacketDataWrapper".into() + "interchain_security.ccv.provider.v1.QueryConsumerIdFromClientIdResponse".into() } fn type_url() -> ::prost::alloc::string::String { - "/interchain_security.ccv.provider.v1.ThrottledPacketDataWrapper".into() + "/interchain_security.ccv.provider.v1.QueryConsumerIdFromClientIdResponse".into() } } -#[derive(Clone, Copy, PartialEq, ::prost::Message)] -pub struct QueryRegisteredConsumerRewardDenomsRequest {} -impl ::prost::Name for QueryRegisteredConsumerRewardDenomsRequest { - const NAME: &'static str = "QueryRegisteredConsumerRewardDenomsRequest"; +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct QueryConsumerChainRequest { + #[prost(string, tag = "1")] + pub consumer_id: ::prost::alloc::string::String, +} +impl ::prost::Name for QueryConsumerChainRequest { + const NAME: &'static str = "QueryConsumerChainRequest"; const PACKAGE: &'static str = "interchain_security.ccv.provider.v1"; fn full_name() -> ::prost::alloc::string::String { - "interchain_security.ccv.provider.v1.QueryRegisteredConsumerRewardDenomsRequest" - .into() + "interchain_security.ccv.provider.v1.QueryConsumerChainRequest".into() } fn type_url() -> ::prost::alloc::string::String { - "/interchain_security.ccv.provider.v1.QueryRegisteredConsumerRewardDenomsRequest" - .into() + "/interchain_security.ccv.provider.v1.QueryConsumerChainRequest".into() } } +#[allow(clippy::derive_partial_eq_without_eq)] #[derive(Clone, PartialEq, ::prost::Message)] -pub struct QueryRegisteredConsumerRewardDenomsResponse { - #[prost(string, repeated, tag = "1")] - pub denoms: ::prost::alloc::vec::Vec<::prost::alloc::string::String>, +pub struct QueryConsumerChainResponse { + #[prost(string, tag = "1")] + pub consumer_id: ::prost::alloc::string::String, + #[prost(string, tag = "2")] + pub chain_id: ::prost::alloc::string::String, + #[prost(string, tag = "3")] + pub owner_address: ::prost::alloc::string::String, + #[prost(string, tag = "4")] + pub phase: ::prost::alloc::string::String, + #[prost(message, optional, tag = "5")] + pub metadata: ::core::option::Option, + #[prost(message, optional, tag = "6")] + pub init_params: ::core::option::Option, + #[prost(message, optional, tag = "7")] + pub power_shaping_params: ::core::option::Option, } -impl ::prost::Name for QueryRegisteredConsumerRewardDenomsResponse { - const NAME: &'static str = "QueryRegisteredConsumerRewardDenomsResponse"; +impl ::prost::Name for QueryConsumerChainResponse { + const NAME: &'static str = "QueryConsumerChainResponse"; const PACKAGE: &'static str = "interchain_security.ccv.provider.v1"; fn full_name() -> ::prost::alloc::string::String { - "interchain_security.ccv.provider.v1.QueryRegisteredConsumerRewardDenomsResponse" - .into() + "interchain_security.ccv.provider.v1.QueryConsumerChainResponse".into() } fn type_url() -> ::prost::alloc::string::String { - "/interchain_security.ccv.provider.v1.QueryRegisteredConsumerRewardDenomsResponse" - .into() + "/interchain_security.ccv.provider.v1.QueryConsumerChainResponse".into() } } /// Generated client implementations. @@ -1505,8 +3325,8 @@ pub mod query_client { where T: tonic::client::GrpcService, T::Error: Into, - T::ResponseBody: Body + std::marker::Send + 'static, - ::Error: Into + std::marker::Send, + T::ResponseBody: Body + Send + 'static, + ::Error: Into + Send, { pub fn new(inner: T) -> Self { let inner = tonic::client::Grpc::new(inner); @@ -1531,7 +3351,7 @@ pub mod query_client { >, , - >>::Error: Into + std::marker::Send + std::marker::Sync, + >>::Error: Into + Send + Sync, { QueryClient::new(InterceptedService::new(inner, interceptor)) } @@ -1558,21 +3378,217 @@ pub mod query_client { self.inner = self.inner.max_decoding_message_size(limit); self } - /// Limits the maximum size of an encoded message. - /// - /// Default: `usize::MAX` - #[must_use] - pub fn max_encoding_message_size(mut self, limit: usize) -> Self { - self.inner = self.inner.max_encoding_message_size(limit); - self + /// Limits the maximum size of an encoded message. + /// + /// Default: `usize::MAX` + #[must_use] + pub fn max_encoding_message_size(mut self, limit: usize) -> Self { + self.inner = self.inner.max_encoding_message_size(limit); + self + } + /// ConsumerGenesis queries the genesis state needed to start a consumer chain + /// whose proposal has been accepted + pub async fn query_consumer_genesis( + &mut self, + request: impl tonic::IntoRequest, + ) -> std::result::Result< + tonic::Response, + tonic::Status, + > { + self.inner + .ready() + .await + .map_err(|e| { + tonic::Status::new( + tonic::Code::Unknown, + format!("Service was not ready: {}", e.into()), + ) + })?; + let codec = tonic::codec::ProstCodec::default(); + let path = http::uri::PathAndQuery::from_static( + "/interchain_security.ccv.provider.v1.Query/QueryConsumerGenesis", + ); + let mut req = request.into_request(); + req.extensions_mut() + .insert( + GrpcMethod::new( + "interchain_security.ccv.provider.v1.Query", + "QueryConsumerGenesis", + ), + ); + self.inner.unary(req, path, codec).await + } + /// ConsumerChains queries active consumer chains supported by the provider + /// chain + pub async fn query_consumer_chains( + &mut self, + request: impl tonic::IntoRequest, + ) -> std::result::Result< + tonic::Response, + tonic::Status, + > { + self.inner + .ready() + .await + .map_err(|e| { + tonic::Status::new( + tonic::Code::Unknown, + format!("Service was not ready: {}", e.into()), + ) + })?; + let codec = tonic::codec::ProstCodec::default(); + let path = http::uri::PathAndQuery::from_static( + "/interchain_security.ccv.provider.v1.Query/QueryConsumerChains", + ); + let mut req = request.into_request(); + req.extensions_mut() + .insert( + GrpcMethod::new( + "interchain_security.ccv.provider.v1.Query", + "QueryConsumerChains", + ), + ); + self.inner.unary(req, path, codec).await + } + /// QueryValidatorConsumerAddr queries the address + /// assigned by a validator for a consumer chain. + pub async fn query_validator_consumer_addr( + &mut self, + request: impl tonic::IntoRequest, + ) -> std::result::Result< + tonic::Response, + tonic::Status, + > { + self.inner + .ready() + .await + .map_err(|e| { + tonic::Status::new( + tonic::Code::Unknown, + format!("Service was not ready: {}", e.into()), + ) + })?; + let codec = tonic::codec::ProstCodec::default(); + let path = http::uri::PathAndQuery::from_static( + "/interchain_security.ccv.provider.v1.Query/QueryValidatorConsumerAddr", + ); + let mut req = request.into_request(); + req.extensions_mut() + .insert( + GrpcMethod::new( + "interchain_security.ccv.provider.v1.Query", + "QueryValidatorConsumerAddr", + ), + ); + self.inner.unary(req, path, codec).await + } + /// QueryProviderAddr returns the provider chain validator + /// given a consumer chain validator address + pub async fn query_validator_provider_addr( + &mut self, + request: impl tonic::IntoRequest, + ) -> std::result::Result< + tonic::Response, + tonic::Status, + > { + self.inner + .ready() + .await + .map_err(|e| { + tonic::Status::new( + tonic::Code::Unknown, + format!("Service was not ready: {}", e.into()), + ) + })?; + let codec = tonic::codec::ProstCodec::default(); + let path = http::uri::PathAndQuery::from_static( + "/interchain_security.ccv.provider.v1.Query/QueryValidatorProviderAddr", + ); + let mut req = request.into_request(); + req.extensions_mut() + .insert( + GrpcMethod::new( + "interchain_security.ccv.provider.v1.Query", + "QueryValidatorProviderAddr", + ), + ); + self.inner.unary(req, path, codec).await + } + /// QueryThrottleState returns the main on-chain state relevant to currently + /// throttled slash packets + pub async fn query_throttle_state( + &mut self, + request: impl tonic::IntoRequest, + ) -> std::result::Result< + tonic::Response, + tonic::Status, + > { + self.inner + .ready() + .await + .map_err(|e| { + tonic::Status::new( + tonic::Code::Unknown, + format!("Service was not ready: {}", e.into()), + ) + })?; + let codec = tonic::codec::ProstCodec::default(); + let path = http::uri::PathAndQuery::from_static( + "/interchain_security.ccv.provider.v1.Query/QueryThrottleState", + ); + let mut req = request.into_request(); + req.extensions_mut() + .insert( + GrpcMethod::new( + "interchain_security.ccv.provider.v1.Query", + "QueryThrottleState", + ), + ); + self.inner.unary(req, path, codec).await + } + /// QueryRegisteredConsumerRewardDenoms returns a list of consumer reward + /// denoms that are registered + pub async fn query_registered_consumer_reward_denoms( + &mut self, + request: impl tonic::IntoRequest< + super::QueryRegisteredConsumerRewardDenomsRequest, + >, + ) -> std::result::Result< + tonic::Response, + tonic::Status, + > { + self.inner + .ready() + .await + .map_err(|e| { + tonic::Status::new( + tonic::Code::Unknown, + format!("Service was not ready: {}", e.into()), + ) + })?; + let codec = tonic::codec::ProstCodec::default(); + let path = http::uri::PathAndQuery::from_static( + "/interchain_security.ccv.provider.v1.Query/QueryRegisteredConsumerRewardDenoms", + ); + let mut req = request.into_request(); + req.extensions_mut() + .insert( + GrpcMethod::new( + "interchain_security.ccv.provider.v1.Query", + "QueryRegisteredConsumerRewardDenoms", + ), + ); + self.inner.unary(req, path, codec).await } - /// ConsumerGenesis queries the genesis state needed to start a consumer chain - /// whose proposal has been accepted - pub async fn query_consumer_genesis( + /// QueryAllPairsValConsAddrByConsumer returns a list of pair valconsensus address + /// between provider and consumer chain + pub async fn query_all_pairs_val_cons_addr_by_consumer( &mut self, - request: impl tonic::IntoRequest, + request: impl tonic::IntoRequest< + super::QueryAllPairsValConsAddrByConsumerRequest, + >, ) -> std::result::Result< - tonic::Response, + tonic::Response, tonic::Status, > { self.inner @@ -1586,25 +3602,24 @@ pub mod query_client { })?; let codec = tonic::codec::ProstCodec::default(); let path = http::uri::PathAndQuery::from_static( - "/interchain_security.ccv.provider.v1.Query/QueryConsumerGenesis", + "/interchain_security.ccv.provider.v1.Query/QueryAllPairsValConsAddrByConsumer", ); let mut req = request.into_request(); req.extensions_mut() .insert( GrpcMethod::new( "interchain_security.ccv.provider.v1.Query", - "QueryConsumerGenesis", + "QueryAllPairsValConsAddrByConsumer", ), ); self.inner.unary(req, path, codec).await } - /// ConsumerChains queries active consumer chains supported by the provider - /// chain - pub async fn query_consumer_chains( + /// QueryParams returns all current values of provider parameters + pub async fn query_params( &mut self, - request: impl tonic::IntoRequest, + request: impl tonic::IntoRequest, ) -> std::result::Result< - tonic::Response, + tonic::Response, tonic::Status, > { self.inner @@ -1618,26 +3633,27 @@ pub mod query_client { })?; let codec = tonic::codec::ProstCodec::default(); let path = http::uri::PathAndQuery::from_static( - "/interchain_security.ccv.provider.v1.Query/QueryConsumerChains", + "/interchain_security.ccv.provider.v1.Query/QueryParams", ); let mut req = request.into_request(); req.extensions_mut() .insert( GrpcMethod::new( "interchain_security.ccv.provider.v1.Query", - "QueryConsumerChains", + "QueryParams", ), ); self.inner.unary(req, path, codec).await } - /// QueryConsumerChainStarts queries consumer chain start proposals. - pub async fn query_consumer_chain_starts( + /// QueryConsumerChainOptedInValidators returns a list of validators consensus addresses + /// that opted-in to the given consumer chain + pub async fn query_consumer_chain_opted_in_validators( &mut self, request: impl tonic::IntoRequest< - super::QueryConsumerChainStartProposalsRequest, + super::QueryConsumerChainOptedInValidatorsRequest, >, ) -> std::result::Result< - tonic::Response, + tonic::Response, tonic::Status, > { self.inner @@ -1651,26 +3667,27 @@ pub mod query_client { })?; let codec = tonic::codec::ProstCodec::default(); let path = http::uri::PathAndQuery::from_static( - "/interchain_security.ccv.provider.v1.Query/QueryConsumerChainStarts", + "/interchain_security.ccv.provider.v1.Query/QueryConsumerChainOptedInValidators", ); let mut req = request.into_request(); req.extensions_mut() .insert( GrpcMethod::new( "interchain_security.ccv.provider.v1.Query", - "QueryConsumerChainStarts", + "QueryConsumerChainOptedInValidators", ), ); self.inner.unary(req, path, codec).await } - /// QueryConsumerChainStops queries consumer chain stop proposals. - pub async fn query_consumer_chain_stops( + /// QueryConsumerChainsValidatorHasToValidate returns a list of consumer chains + /// that a given validator must validate + pub async fn query_consumer_chains_validator_has_to_validate( &mut self, request: impl tonic::IntoRequest< - super::QueryConsumerChainStopProposalsRequest, + super::QueryConsumerChainsValidatorHasToValidateRequest, >, ) -> std::result::Result< - tonic::Response, + tonic::Response, tonic::Status, > { self.inner @@ -1684,25 +3701,27 @@ pub mod query_client { })?; let codec = tonic::codec::ProstCodec::default(); let path = http::uri::PathAndQuery::from_static( - "/interchain_security.ccv.provider.v1.Query/QueryConsumerChainStops", + "/interchain_security.ccv.provider.v1.Query/QueryConsumerChainsValidatorHasToValidate", ); let mut req = request.into_request(); req.extensions_mut() .insert( GrpcMethod::new( "interchain_security.ccv.provider.v1.Query", - "QueryConsumerChainStops", + "QueryConsumerChainsValidatorHasToValidate", ), ); self.inner.unary(req, path, codec).await } - /// QueryValidatorConsumerAddr queries the address - /// assigned by a validator for a consumer chain. - pub async fn query_validator_consumer_addr( + /// QueryValidatorConsumerCommissionRate returns the commission rate a given + /// validator charges on a given consumer chain + pub async fn query_validator_consumer_commission_rate( &mut self, - request: impl tonic::IntoRequest, + request: impl tonic::IntoRequest< + super::QueryValidatorConsumerCommissionRateRequest, + >, ) -> std::result::Result< - tonic::Response, + tonic::Response, tonic::Status, > { self.inner @@ -1716,25 +3735,26 @@ pub mod query_client { })?; let codec = tonic::codec::ProstCodec::default(); let path = http::uri::PathAndQuery::from_static( - "/interchain_security.ccv.provider.v1.Query/QueryValidatorConsumerAddr", + "/interchain_security.ccv.provider.v1.Query/QueryValidatorConsumerCommissionRate", ); let mut req = request.into_request(); req.extensions_mut() .insert( GrpcMethod::new( "interchain_security.ccv.provider.v1.Query", - "QueryValidatorConsumerAddr", + "QueryValidatorConsumerCommissionRate", ), ); self.inner.unary(req, path, codec).await } - /// QueryProviderAddr returns the provider chain validator - /// given a consumer chain validator address - pub async fn query_validator_provider_addr( + /// QueryConsumerValidators returns the latest set consumer-validator set for a given consumer ID + /// Note that this does not necessarily mean that the consumer chain is using this validator set at this exact moment + /// because a VSCPacket could be delayed to be delivered on the consumer chain. + pub async fn query_consumer_validators( &mut self, - request: impl tonic::IntoRequest, + request: impl tonic::IntoRequest, ) -> std::result::Result< - tonic::Response, + tonic::Response, tonic::Status, > { self.inner @@ -1748,25 +3768,25 @@ pub mod query_client { })?; let codec = tonic::codec::ProstCodec::default(); let path = http::uri::PathAndQuery::from_static( - "/interchain_security.ccv.provider.v1.Query/QueryValidatorProviderAddr", + "/interchain_security.ccv.provider.v1.Query/QueryConsumerValidators", ); let mut req = request.into_request(); req.extensions_mut() .insert( GrpcMethod::new( "interchain_security.ccv.provider.v1.Query", - "QueryValidatorProviderAddr", + "QueryConsumerValidators", ), ); self.inner.unary(req, path, codec).await } - /// QueryThrottleState returns the main on-chain state relevant to currently - /// throttled slash packets - pub async fn query_throttle_state( + /// QueryBlocksUntilNextEpoch returns the number of blocks until the next epoch + /// starts and validator updates are sent to the consumer chains + pub async fn query_blocks_until_next_epoch( &mut self, - request: impl tonic::IntoRequest, + request: impl tonic::IntoRequest, ) -> std::result::Result< - tonic::Response, + tonic::Response, tonic::Status, > { self.inner @@ -1780,27 +3800,25 @@ pub mod query_client { })?; let codec = tonic::codec::ProstCodec::default(); let path = http::uri::PathAndQuery::from_static( - "/interchain_security.ccv.provider.v1.Query/QueryThrottleState", + "/interchain_security.ccv.provider.v1.Query/QueryBlocksUntilNextEpoch", ); let mut req = request.into_request(); req.extensions_mut() .insert( GrpcMethod::new( "interchain_security.ccv.provider.v1.Query", - "QueryThrottleState", + "QueryBlocksUntilNextEpoch", ), ); self.inner.unary(req, path, codec).await } - /// QueryThrottledConsumerPacketData returns a list of pending packet data - /// instances (slash packet and vsc matured) for a single consumer chain - pub async fn query_throttled_consumer_packet_data( + /// QueryConsumerIdFromClientId returns the consumer id of the chain + /// associated with the provided client id + pub async fn query_consumer_id_from_client_id( &mut self, - request: impl tonic::IntoRequest< - super::QueryThrottledConsumerPacketDataRequest, - >, + request: impl tonic::IntoRequest, ) -> std::result::Result< - tonic::Response, + tonic::Response, tonic::Status, > { self.inner @@ -1814,27 +3832,25 @@ pub mod query_client { })?; let codec = tonic::codec::ProstCodec::default(); let path = http::uri::PathAndQuery::from_static( - "/interchain_security.ccv.provider.v1.Query/QueryThrottledConsumerPacketData", + "/interchain_security.ccv.provider.v1.Query/QueryConsumerIdFromClientId", ); let mut req = request.into_request(); req.extensions_mut() .insert( GrpcMethod::new( "interchain_security.ccv.provider.v1.Query", - "QueryThrottledConsumerPacketData", + "QueryConsumerIdFromClientId", ), ); self.inner.unary(req, path, codec).await } - /// QueryRegisteredConsumerRewardDenoms returns a list of consumer reward - /// denoms that are registered - pub async fn query_registered_consumer_reward_denoms( + /// QueryConsumerChain returns the consumer chain + /// associated with the provided consumer id + pub async fn query_consumer_chain( &mut self, - request: impl tonic::IntoRequest< - super::QueryRegisteredConsumerRewardDenomsRequest, - >, + request: impl tonic::IntoRequest, ) -> std::result::Result< - tonic::Response, + tonic::Response, tonic::Status, > { self.inner @@ -1848,14 +3864,14 @@ pub mod query_client { })?; let codec = tonic::codec::ProstCodec::default(); let path = http::uri::PathAndQuery::from_static( - "/interchain_security.ccv.provider.v1.Query/QueryRegisteredConsumerRewardDenoms", + "/interchain_security.ccv.provider.v1.Query/QueryConsumerChain", ); let mut req = request.into_request(); req.extensions_mut() .insert( GrpcMethod::new( "interchain_security.ccv.provider.v1.Query", - "QueryRegisteredConsumerRewardDenoms", + "QueryConsumerChain", ), ); self.inner.unary(req, path, codec).await @@ -1869,7 +3885,7 @@ pub mod query_server { use tonic::codegen::*; /// Generated trait containing gRPC methods that should be implemented for use with QueryServer. #[async_trait] - pub trait Query: std::marker::Send + std::marker::Sync + 'static { + pub trait Query: Send + Sync + 'static { /// ConsumerGenesis queries the genesis state needed to start a consumer chain /// whose proposal has been accepted async fn query_consumer_genesis( @@ -1888,22 +3904,6 @@ pub mod query_server { tonic::Response, tonic::Status, >; - /// QueryConsumerChainStarts queries consumer chain start proposals. - async fn query_consumer_chain_starts( - &self, - request: tonic::Request, - ) -> std::result::Result< - tonic::Response, - tonic::Status, - >; - /// QueryConsumerChainStops queries consumer chain stop proposals. - async fn query_consumer_chain_stops( - &self, - request: tonic::Request, - ) -> std::result::Result< - tonic::Response, - tonic::Status, - >; /// QueryValidatorConsumerAddr queries the address /// assigned by a validator for a consumer chain. async fn query_validator_consumer_addr( @@ -1931,15 +3931,6 @@ pub mod query_server { tonic::Response, tonic::Status, >; - /// QueryThrottledConsumerPacketData returns a list of pending packet data - /// instances (slash packet and vsc matured) for a single consumer chain - async fn query_throttled_consumer_packet_data( - &self, - request: tonic::Request, - ) -> std::result::Result< - tonic::Response, - tonic::Status, - >; /// QueryRegisteredConsumerRewardDenoms returns a list of consumer reward /// denoms that are registered async fn query_registered_consumer_reward_denoms( @@ -1949,16 +3940,99 @@ pub mod query_server { tonic::Response, tonic::Status, >; + /// QueryAllPairsValConsAddrByConsumer returns a list of pair valconsensus address + /// between provider and consumer chain + async fn query_all_pairs_val_cons_addr_by_consumer( + &self, + request: tonic::Request, + ) -> std::result::Result< + tonic::Response, + tonic::Status, + >; + /// QueryParams returns all current values of provider parameters + async fn query_params( + &self, + request: tonic::Request, + ) -> std::result::Result< + tonic::Response, + tonic::Status, + >; + /// QueryConsumerChainOptedInValidators returns a list of validators consensus addresses + /// that opted-in to the given consumer chain + async fn query_consumer_chain_opted_in_validators( + &self, + request: tonic::Request, + ) -> std::result::Result< + tonic::Response, + tonic::Status, + >; + /// QueryConsumerChainsValidatorHasToValidate returns a list of consumer chains + /// that a given validator must validate + async fn query_consumer_chains_validator_has_to_validate( + &self, + request: tonic::Request< + super::QueryConsumerChainsValidatorHasToValidateRequest, + >, + ) -> std::result::Result< + tonic::Response, + tonic::Status, + >; + /// QueryValidatorConsumerCommissionRate returns the commission rate a given + /// validator charges on a given consumer chain + async fn query_validator_consumer_commission_rate( + &self, + request: tonic::Request, + ) -> std::result::Result< + tonic::Response, + tonic::Status, + >; + /// QueryConsumerValidators returns the latest set consumer-validator set for a given consumer ID + /// Note that this does not necessarily mean that the consumer chain is using this validator set at this exact moment + /// because a VSCPacket could be delayed to be delivered on the consumer chain. + async fn query_consumer_validators( + &self, + request: tonic::Request, + ) -> std::result::Result< + tonic::Response, + tonic::Status, + >; + /// QueryBlocksUntilNextEpoch returns the number of blocks until the next epoch + /// starts and validator updates are sent to the consumer chains + async fn query_blocks_until_next_epoch( + &self, + request: tonic::Request, + ) -> std::result::Result< + tonic::Response, + tonic::Status, + >; + /// QueryConsumerIdFromClientId returns the consumer id of the chain + /// associated with the provided client id + async fn query_consumer_id_from_client_id( + &self, + request: tonic::Request, + ) -> std::result::Result< + tonic::Response, + tonic::Status, + >; + /// QueryConsumerChain returns the consumer chain + /// associated with the provided consumer id + async fn query_consumer_chain( + &self, + request: tonic::Request, + ) -> std::result::Result< + tonic::Response, + tonic::Status, + >; } #[derive(Debug)] - pub struct QueryServer { + pub struct QueryServer { inner: Arc, accept_compression_encodings: EnabledCompressionEncodings, send_compression_encodings: EnabledCompressionEncodings, max_decoding_message_size: Option, max_encoding_message_size: Option, } - impl QueryServer { + impl QueryServer { pub fn new(inner: T) -> Self { Self::from_arc(Arc::new(inner)) } @@ -2012,8 +4086,8 @@ pub mod query_server { impl tonic::codegen::Service> for QueryServer where T: Query, - B: Body + std::marker::Send + 'static, - B::Error: Into + std::marker::Send + 'static, + B: Body + Send + 'static, + B::Error: Into + Send + 'static, { type Response = http::Response; type Error = std::convert::Infallible; @@ -2028,23 +4102,166 @@ pub mod query_server { match req.uri().path() { "/interchain_security.ccv.provider.v1.Query/QueryConsumerGenesis" => { #[allow(non_camel_case_types)] - struct QueryConsumerGenesisSvc(pub Arc); + struct QueryConsumerGenesisSvc(pub Arc); + impl< + T: Query, + > tonic::server::UnaryService + for QueryConsumerGenesisSvc { + type Response = super::QueryConsumerGenesisResponse; + type Future = BoxFuture< + tonic::Response, + tonic::Status, + >; + fn call( + &mut self, + request: tonic::Request, + ) -> Self::Future { + let inner = Arc::clone(&self.0); + let fut = async move { + ::query_consumer_genesis(&inner, request).await + }; + Box::pin(fut) + } + } + let accept_compression_encodings = self.accept_compression_encodings; + let send_compression_encodings = self.send_compression_encodings; + let max_decoding_message_size = self.max_decoding_message_size; + let max_encoding_message_size = self.max_encoding_message_size; + let inner = self.inner.clone(); + let fut = async move { + let method = QueryConsumerGenesisSvc(inner); + let codec = tonic::codec::ProstCodec::default(); + let mut grpc = tonic::server::Grpc::new(codec) + .apply_compression_config( + accept_compression_encodings, + send_compression_encodings, + ) + .apply_max_message_size_config( + max_decoding_message_size, + max_encoding_message_size, + ); + let res = grpc.unary(method, req).await; + Ok(res) + }; + Box::pin(fut) + } + "/interchain_security.ccv.provider.v1.Query/QueryConsumerChains" => { + #[allow(non_camel_case_types)] + struct QueryConsumerChainsSvc(pub Arc); + impl< + T: Query, + > tonic::server::UnaryService + for QueryConsumerChainsSvc { + type Response = super::QueryConsumerChainsResponse; + type Future = BoxFuture< + tonic::Response, + tonic::Status, + >; + fn call( + &mut self, + request: tonic::Request, + ) -> Self::Future { + let inner = Arc::clone(&self.0); + let fut = async move { + ::query_consumer_chains(&inner, request).await + }; + Box::pin(fut) + } + } + let accept_compression_encodings = self.accept_compression_encodings; + let send_compression_encodings = self.send_compression_encodings; + let max_decoding_message_size = self.max_decoding_message_size; + let max_encoding_message_size = self.max_encoding_message_size; + let inner = self.inner.clone(); + let fut = async move { + let method = QueryConsumerChainsSvc(inner); + let codec = tonic::codec::ProstCodec::default(); + let mut grpc = tonic::server::Grpc::new(codec) + .apply_compression_config( + accept_compression_encodings, + send_compression_encodings, + ) + .apply_max_message_size_config( + max_decoding_message_size, + max_encoding_message_size, + ); + let res = grpc.unary(method, req).await; + Ok(res) + }; + Box::pin(fut) + } + "/interchain_security.ccv.provider.v1.Query/QueryValidatorConsumerAddr" => { + #[allow(non_camel_case_types)] + struct QueryValidatorConsumerAddrSvc(pub Arc); + impl< + T: Query, + > tonic::server::UnaryService< + super::QueryValidatorConsumerAddrRequest, + > for QueryValidatorConsumerAddrSvc { + type Response = super::QueryValidatorConsumerAddrResponse; + type Future = BoxFuture< + tonic::Response, + tonic::Status, + >; + fn call( + &mut self, + request: tonic::Request< + super::QueryValidatorConsumerAddrRequest, + >, + ) -> Self::Future { + let inner = Arc::clone(&self.0); + let fut = async move { + ::query_validator_consumer_addr(&inner, request) + .await + }; + Box::pin(fut) + } + } + let accept_compression_encodings = self.accept_compression_encodings; + let send_compression_encodings = self.send_compression_encodings; + let max_decoding_message_size = self.max_decoding_message_size; + let max_encoding_message_size = self.max_encoding_message_size; + let inner = self.inner.clone(); + let fut = async move { + let method = QueryValidatorConsumerAddrSvc(inner); + let codec = tonic::codec::ProstCodec::default(); + let mut grpc = tonic::server::Grpc::new(codec) + .apply_compression_config( + accept_compression_encodings, + send_compression_encodings, + ) + .apply_max_message_size_config( + max_decoding_message_size, + max_encoding_message_size, + ); + let res = grpc.unary(method, req).await; + Ok(res) + }; + Box::pin(fut) + } + "/interchain_security.ccv.provider.v1.Query/QueryValidatorProviderAddr" => { + #[allow(non_camel_case_types)] + struct QueryValidatorProviderAddrSvc(pub Arc); impl< T: Query, - > tonic::server::UnaryService - for QueryConsumerGenesisSvc { - type Response = super::QueryConsumerGenesisResponse; + > tonic::server::UnaryService< + super::QueryValidatorProviderAddrRequest, + > for QueryValidatorProviderAddrSvc { + type Response = super::QueryValidatorProviderAddrResponse; type Future = BoxFuture< tonic::Response, tonic::Status, >; fn call( &mut self, - request: tonic::Request, + request: tonic::Request< + super::QueryValidatorProviderAddrRequest, + >, ) -> Self::Future { let inner = Arc::clone(&self.0); let fut = async move { - ::query_consumer_genesis(&inner, request).await + ::query_validator_provider_addr(&inner, request) + .await }; Box::pin(fut) } @@ -2055,7 +4272,7 @@ pub mod query_server { let max_encoding_message_size = self.max_encoding_message_size; let inner = self.inner.clone(); let fut = async move { - let method = QueryConsumerGenesisSvc(inner); + let method = QueryValidatorProviderAddrSvc(inner); let codec = tonic::codec::ProstCodec::default(); let mut grpc = tonic::server::Grpc::new(codec) .apply_compression_config( @@ -2071,25 +4288,25 @@ pub mod query_server { }; Box::pin(fut) } - "/interchain_security.ccv.provider.v1.Query/QueryConsumerChains" => { + "/interchain_security.ccv.provider.v1.Query/QueryThrottleState" => { #[allow(non_camel_case_types)] - struct QueryConsumerChainsSvc(pub Arc); + struct QueryThrottleStateSvc(pub Arc); impl< T: Query, - > tonic::server::UnaryService - for QueryConsumerChainsSvc { - type Response = super::QueryConsumerChainsResponse; + > tonic::server::UnaryService + for QueryThrottleStateSvc { + type Response = super::QueryThrottleStateResponse; type Future = BoxFuture< tonic::Response, tonic::Status, >; fn call( &mut self, - request: tonic::Request, + request: tonic::Request, ) -> Self::Future { let inner = Arc::clone(&self.0); let fut = async move { - ::query_consumer_chains(&inner, request).await + ::query_throttle_state(&inner, request).await }; Box::pin(fut) } @@ -2100,7 +4317,7 @@ pub mod query_server { let max_encoding_message_size = self.max_encoding_message_size; let inner = self.inner.clone(); let fut = async move { - let method = QueryConsumerChainsSvc(inner); + let method = QueryThrottleStateSvc(inner); let codec = tonic::codec::ProstCodec::default(); let mut grpc = tonic::server::Grpc::new(codec) .apply_compression_config( @@ -2116,15 +4333,15 @@ pub mod query_server { }; Box::pin(fut) } - "/interchain_security.ccv.provider.v1.Query/QueryConsumerChainStarts" => { + "/interchain_security.ccv.provider.v1.Query/QueryRegisteredConsumerRewardDenoms" => { #[allow(non_camel_case_types)] - struct QueryConsumerChainStartsSvc(pub Arc); + struct QueryRegisteredConsumerRewardDenomsSvc(pub Arc); impl< T: Query, > tonic::server::UnaryService< - super::QueryConsumerChainStartProposalsRequest, - > for QueryConsumerChainStartsSvc { - type Response = super::QueryConsumerChainStartProposalsResponse; + super::QueryRegisteredConsumerRewardDenomsRequest, + > for QueryRegisteredConsumerRewardDenomsSvc { + type Response = super::QueryRegisteredConsumerRewardDenomsResponse; type Future = BoxFuture< tonic::Response, tonic::Status, @@ -2132,12 +4349,15 @@ pub mod query_server { fn call( &mut self, request: tonic::Request< - super::QueryConsumerChainStartProposalsRequest, + super::QueryRegisteredConsumerRewardDenomsRequest, >, ) -> Self::Future { let inner = Arc::clone(&self.0); let fut = async move { - ::query_consumer_chain_starts(&inner, request) + ::query_registered_consumer_reward_denoms( + &inner, + request, + ) .await }; Box::pin(fut) @@ -2149,7 +4369,7 @@ pub mod query_server { let max_encoding_message_size = self.max_encoding_message_size; let inner = self.inner.clone(); let fut = async move { - let method = QueryConsumerChainStartsSvc(inner); + let method = QueryRegisteredConsumerRewardDenomsSvc(inner); let codec = tonic::codec::ProstCodec::default(); let mut grpc = tonic::server::Grpc::new(codec) .apply_compression_config( @@ -2165,15 +4385,15 @@ pub mod query_server { }; Box::pin(fut) } - "/interchain_security.ccv.provider.v1.Query/QueryConsumerChainStops" => { + "/interchain_security.ccv.provider.v1.Query/QueryAllPairsValConsAddrByConsumer" => { #[allow(non_camel_case_types)] - struct QueryConsumerChainStopsSvc(pub Arc); + struct QueryAllPairsValConsAddrByConsumerSvc(pub Arc); impl< T: Query, > tonic::server::UnaryService< - super::QueryConsumerChainStopProposalsRequest, - > for QueryConsumerChainStopsSvc { - type Response = super::QueryConsumerChainStopProposalsResponse; + super::QueryAllPairsValConsAddrByConsumerRequest, + > for QueryAllPairsValConsAddrByConsumerSvc { + type Response = super::QueryAllPairsValConsAddrByConsumerResponse; type Future = BoxFuture< tonic::Response, tonic::Status, @@ -2181,12 +4401,15 @@ pub mod query_server { fn call( &mut self, request: tonic::Request< - super::QueryConsumerChainStopProposalsRequest, + super::QueryAllPairsValConsAddrByConsumerRequest, >, ) -> Self::Future { let inner = Arc::clone(&self.0); let fut = async move { - ::query_consumer_chain_stops(&inner, request) + ::query_all_pairs_val_cons_addr_by_consumer( + &inner, + request, + ) .await }; Box::pin(fut) @@ -2198,7 +4421,7 @@ pub mod query_server { let max_encoding_message_size = self.max_encoding_message_size; let inner = self.inner.clone(); let fut = async move { - let method = QueryConsumerChainStopsSvc(inner); + let method = QueryAllPairsValConsAddrByConsumerSvc(inner); let codec = tonic::codec::ProstCodec::default(); let mut grpc = tonic::server::Grpc::new(codec) .apply_compression_config( @@ -2214,15 +4437,58 @@ pub mod query_server { }; Box::pin(fut) } - "/interchain_security.ccv.provider.v1.Query/QueryValidatorConsumerAddr" => { + "/interchain_security.ccv.provider.v1.Query/QueryParams" => { #[allow(non_camel_case_types)] - struct QueryValidatorConsumerAddrSvc(pub Arc); + struct QueryParamsSvc(pub Arc); + impl tonic::server::UnaryService + for QueryParamsSvc { + type Response = super::QueryParamsResponse; + type Future = BoxFuture< + tonic::Response, + tonic::Status, + >; + fn call( + &mut self, + request: tonic::Request, + ) -> Self::Future { + let inner = Arc::clone(&self.0); + let fut = async move { + ::query_params(&inner, request).await + }; + Box::pin(fut) + } + } + let accept_compression_encodings = self.accept_compression_encodings; + let send_compression_encodings = self.send_compression_encodings; + let max_decoding_message_size = self.max_decoding_message_size; + let max_encoding_message_size = self.max_encoding_message_size; + let inner = self.inner.clone(); + let fut = async move { + let method = QueryParamsSvc(inner); + let codec = tonic::codec::ProstCodec::default(); + let mut grpc = tonic::server::Grpc::new(codec) + .apply_compression_config( + accept_compression_encodings, + send_compression_encodings, + ) + .apply_max_message_size_config( + max_decoding_message_size, + max_encoding_message_size, + ); + let res = grpc.unary(method, req).await; + Ok(res) + }; + Box::pin(fut) + } + "/interchain_security.ccv.provider.v1.Query/QueryConsumerChainOptedInValidators" => { + #[allow(non_camel_case_types)] + struct QueryConsumerChainOptedInValidatorsSvc(pub Arc); impl< T: Query, > tonic::server::UnaryService< - super::QueryValidatorConsumerAddrRequest, - > for QueryValidatorConsumerAddrSvc { - type Response = super::QueryValidatorConsumerAddrResponse; + super::QueryConsumerChainOptedInValidatorsRequest, + > for QueryConsumerChainOptedInValidatorsSvc { + type Response = super::QueryConsumerChainOptedInValidatorsResponse; type Future = BoxFuture< tonic::Response, tonic::Status, @@ -2230,12 +4496,15 @@ pub mod query_server { fn call( &mut self, request: tonic::Request< - super::QueryValidatorConsumerAddrRequest, + super::QueryConsumerChainOptedInValidatorsRequest, >, ) -> Self::Future { let inner = Arc::clone(&self.0); let fut = async move { - ::query_validator_consumer_addr(&inner, request) + ::query_consumer_chain_opted_in_validators( + &inner, + request, + ) .await }; Box::pin(fut) @@ -2247,7 +4516,7 @@ pub mod query_server { let max_encoding_message_size = self.max_encoding_message_size; let inner = self.inner.clone(); let fut = async move { - let method = QueryValidatorConsumerAddrSvc(inner); + let method = QueryConsumerChainOptedInValidatorsSvc(inner); let codec = tonic::codec::ProstCodec::default(); let mut grpc = tonic::server::Grpc::new(codec) .apply_compression_config( @@ -2263,15 +4532,17 @@ pub mod query_server { }; Box::pin(fut) } - "/interchain_security.ccv.provider.v1.Query/QueryValidatorProviderAddr" => { + "/interchain_security.ccv.provider.v1.Query/QueryConsumerChainsValidatorHasToValidate" => { #[allow(non_camel_case_types)] - struct QueryValidatorProviderAddrSvc(pub Arc); + struct QueryConsumerChainsValidatorHasToValidateSvc( + pub Arc, + ); impl< T: Query, > tonic::server::UnaryService< - super::QueryValidatorProviderAddrRequest, - > for QueryValidatorProviderAddrSvc { - type Response = super::QueryValidatorProviderAddrResponse; + super::QueryConsumerChainsValidatorHasToValidateRequest, + > for QueryConsumerChainsValidatorHasToValidateSvc { + type Response = super::QueryConsumerChainsValidatorHasToValidateResponse; type Future = BoxFuture< tonic::Response, tonic::Status, @@ -2279,12 +4550,15 @@ pub mod query_server { fn call( &mut self, request: tonic::Request< - super::QueryValidatorProviderAddrRequest, + super::QueryConsumerChainsValidatorHasToValidateRequest, >, ) -> Self::Future { let inner = Arc::clone(&self.0); let fut = async move { - ::query_validator_provider_addr(&inner, request) + ::query_consumer_chains_validator_has_to_validate( + &inner, + request, + ) .await }; Box::pin(fut) @@ -2296,7 +4570,7 @@ pub mod query_server { let max_encoding_message_size = self.max_encoding_message_size; let inner = self.inner.clone(); let fut = async move { - let method = QueryValidatorProviderAddrSvc(inner); + let method = QueryConsumerChainsValidatorHasToValidateSvc(inner); let codec = tonic::codec::ProstCodec::default(); let mut grpc = tonic::server::Grpc::new(codec) .apply_compression_config( @@ -2312,25 +4586,32 @@ pub mod query_server { }; Box::pin(fut) } - "/interchain_security.ccv.provider.v1.Query/QueryThrottleState" => { + "/interchain_security.ccv.provider.v1.Query/QueryValidatorConsumerCommissionRate" => { #[allow(non_camel_case_types)] - struct QueryThrottleStateSvc(pub Arc); + struct QueryValidatorConsumerCommissionRateSvc(pub Arc); impl< T: Query, - > tonic::server::UnaryService - for QueryThrottleStateSvc { - type Response = super::QueryThrottleStateResponse; + > tonic::server::UnaryService< + super::QueryValidatorConsumerCommissionRateRequest, + > for QueryValidatorConsumerCommissionRateSvc { + type Response = super::QueryValidatorConsumerCommissionRateResponse; type Future = BoxFuture< tonic::Response, tonic::Status, >; fn call( &mut self, - request: tonic::Request, + request: tonic::Request< + super::QueryValidatorConsumerCommissionRateRequest, + >, ) -> Self::Future { let inner = Arc::clone(&self.0); let fut = async move { - ::query_throttle_state(&inner, request).await + ::query_validator_consumer_commission_rate( + &inner, + request, + ) + .await }; Box::pin(fut) } @@ -2341,7 +4622,55 @@ pub mod query_server { let max_encoding_message_size = self.max_encoding_message_size; let inner = self.inner.clone(); let fut = async move { - let method = QueryThrottleStateSvc(inner); + let method = QueryValidatorConsumerCommissionRateSvc(inner); + let codec = tonic::codec::ProstCodec::default(); + let mut grpc = tonic::server::Grpc::new(codec) + .apply_compression_config( + accept_compression_encodings, + send_compression_encodings, + ) + .apply_max_message_size_config( + max_decoding_message_size, + max_encoding_message_size, + ); + let res = grpc.unary(method, req).await; + Ok(res) + }; + Box::pin(fut) + } + "/interchain_security.ccv.provider.v1.Query/QueryConsumerValidators" => { + #[allow(non_camel_case_types)] + struct QueryConsumerValidatorsSvc(pub Arc); + impl< + T: Query, + > tonic::server::UnaryService + for QueryConsumerValidatorsSvc { + type Response = super::QueryConsumerValidatorsResponse; + type Future = BoxFuture< + tonic::Response, + tonic::Status, + >; + fn call( + &mut self, + request: tonic::Request< + super::QueryConsumerValidatorsRequest, + >, + ) -> Self::Future { + let inner = Arc::clone(&self.0); + let fut = async move { + ::query_consumer_validators(&inner, request) + .await + }; + Box::pin(fut) + } + } + let accept_compression_encodings = self.accept_compression_encodings; + let send_compression_encodings = self.send_compression_encodings; + let max_decoding_message_size = self.max_decoding_message_size; + let max_encoding_message_size = self.max_encoding_message_size; + let inner = self.inner.clone(); + let fut = async move { + let method = QueryConsumerValidatorsSvc(inner); let codec = tonic::codec::ProstCodec::default(); let mut grpc = tonic::server::Grpc::new(codec) .apply_compression_config( @@ -2357,15 +4686,15 @@ pub mod query_server { }; Box::pin(fut) } - "/interchain_security.ccv.provider.v1.Query/QueryThrottledConsumerPacketData" => { + "/interchain_security.ccv.provider.v1.Query/QueryBlocksUntilNextEpoch" => { #[allow(non_camel_case_types)] - struct QueryThrottledConsumerPacketDataSvc(pub Arc); + struct QueryBlocksUntilNextEpochSvc(pub Arc); impl< T: Query, > tonic::server::UnaryService< - super::QueryThrottledConsumerPacketDataRequest, - > for QueryThrottledConsumerPacketDataSvc { - type Response = super::QueryThrottledConsumerPacketDataResponse; + super::QueryBlocksUntilNextEpochRequest, + > for QueryBlocksUntilNextEpochSvc { + type Response = super::QueryBlocksUntilNextEpochResponse; type Future = BoxFuture< tonic::Response, tonic::Status, @@ -2373,15 +4702,12 @@ pub mod query_server { fn call( &mut self, request: tonic::Request< - super::QueryThrottledConsumerPacketDataRequest, + super::QueryBlocksUntilNextEpochRequest, >, ) -> Self::Future { let inner = Arc::clone(&self.0); let fut = async move { - ::query_throttled_consumer_packet_data( - &inner, - request, - ) + ::query_blocks_until_next_epoch(&inner, request) .await }; Box::pin(fut) @@ -2393,7 +4719,7 @@ pub mod query_server { let max_encoding_message_size = self.max_encoding_message_size; let inner = self.inner.clone(); let fut = async move { - let method = QueryThrottledConsumerPacketDataSvc(inner); + let method = QueryBlocksUntilNextEpochSvc(inner); let codec = tonic::codec::ProstCodec::default(); let mut grpc = tonic::server::Grpc::new(codec) .apply_compression_config( @@ -2409,15 +4735,15 @@ pub mod query_server { }; Box::pin(fut) } - "/interchain_security.ccv.provider.v1.Query/QueryRegisteredConsumerRewardDenoms" => { + "/interchain_security.ccv.provider.v1.Query/QueryConsumerIdFromClientId" => { #[allow(non_camel_case_types)] - struct QueryRegisteredConsumerRewardDenomsSvc(pub Arc); + struct QueryConsumerIdFromClientIdSvc(pub Arc); impl< T: Query, > tonic::server::UnaryService< - super::QueryRegisteredConsumerRewardDenomsRequest, - > for QueryRegisteredConsumerRewardDenomsSvc { - type Response = super::QueryRegisteredConsumerRewardDenomsResponse; + super::QueryConsumerIdFromClientIdRequest, + > for QueryConsumerIdFromClientIdSvc { + type Response = super::QueryConsumerIdFromClientIdResponse; type Future = BoxFuture< tonic::Response, tonic::Status, @@ -2425,12 +4751,12 @@ pub mod query_server { fn call( &mut self, request: tonic::Request< - super::QueryRegisteredConsumerRewardDenomsRequest, + super::QueryConsumerIdFromClientIdRequest, >, ) -> Self::Future { let inner = Arc::clone(&self.0); let fut = async move { - ::query_registered_consumer_reward_denoms( + ::query_consumer_id_from_client_id( &inner, request, ) @@ -2445,7 +4771,52 @@ pub mod query_server { let max_encoding_message_size = self.max_encoding_message_size; let inner = self.inner.clone(); let fut = async move { - let method = QueryRegisteredConsumerRewardDenomsSvc(inner); + let method = QueryConsumerIdFromClientIdSvc(inner); + let codec = tonic::codec::ProstCodec::default(); + let mut grpc = tonic::server::Grpc::new(codec) + .apply_compression_config( + accept_compression_encodings, + send_compression_encodings, + ) + .apply_max_message_size_config( + max_decoding_message_size, + max_encoding_message_size, + ); + let res = grpc.unary(method, req).await; + Ok(res) + }; + Box::pin(fut) + } + "/interchain_security.ccv.provider.v1.Query/QueryConsumerChain" => { + #[allow(non_camel_case_types)] + struct QueryConsumerChainSvc(pub Arc); + impl< + T: Query, + > tonic::server::UnaryService + for QueryConsumerChainSvc { + type Response = super::QueryConsumerChainResponse; + type Future = BoxFuture< + tonic::Response, + tonic::Status, + >; + fn call( + &mut self, + request: tonic::Request, + ) -> Self::Future { + let inner = Arc::clone(&self.0); + let fut = async move { + ::query_consumer_chain(&inner, request).await + }; + Box::pin(fut) + } + } + let accept_compression_encodings = self.accept_compression_encodings; + let send_compression_encodings = self.send_compression_encodings; + let max_decoding_message_size = self.max_decoding_message_size; + let max_encoding_message_size = self.max_encoding_message_size; + let inner = self.inner.clone(); + let fut = async move { + let method = QueryConsumerChainSvc(inner); let codec = tonic::codec::ProstCodec::default(); let mut grpc = tonic::server::Grpc::new(codec) .apply_compression_config( @@ -2479,7 +4850,7 @@ pub mod query_server { } } } - impl Clone for QueryServer { + impl Clone for QueryServer { fn clone(&self) -> Self { let inner = self.inner.clone(); Self { @@ -2491,13 +4862,12 @@ pub mod query_server { } } } - /// Generated gRPC service name - pub const SERVICE_NAME: &str = "interchain_security.ccv.provider.v1.Query"; - impl tonic::server::NamedService for QueryServer { - const NAME: &'static str = SERVICE_NAME; + impl tonic::server::NamedService for QueryServer { + const NAME: &'static str = "interchain_security.ccv.provider.v1.Query"; } } /// GenesisState defines the CCV provider chain genesis state +#[allow(clippy::derive_partial_eq_without_eq)] #[derive(Clone, PartialEq, ::prost::Message)] pub struct GenesisState { /// strictly positive and set to 1 (DefaultValsetUpdateID) for a new chain @@ -2507,20 +4877,8 @@ pub struct GenesisState { #[prost(message, repeated, tag = "2")] pub consumer_states: ::prost::alloc::vec::Vec, /// empty for a new chain - #[prost(message, repeated, tag = "3")] - pub unbonding_ops: ::prost::alloc::vec::Vec, - /// empty for a new chain - #[prost(message, optional, tag = "4")] - pub mature_unbonding_ops: ::core::option::Option, - /// empty for a new chain #[prost(message, repeated, tag = "5")] pub valset_update_id_to_height: ::prost::alloc::vec::Vec, - /// empty for a new chain - #[prost(message, repeated, tag = "6")] - pub consumer_addition_proposals: ::prost::alloc::vec::Vec, - /// empty for a new chain - #[prost(message, repeated, tag = "7")] - pub consumer_removal_proposals: ::prost::alloc::vec::Vec, #[prost(message, optional, tag = "8")] pub params: ::core::option::Option, /// empty for a new chain @@ -2530,12 +4888,8 @@ pub struct GenesisState { #[prost(message, repeated, tag = "10")] pub validators_by_consumer_addr: ::prost::alloc::vec::Vec, /// empty for a new chain - #[prost(message, repeated, tag = "11")] - pub consumer_addrs_to_prune: ::prost::alloc::vec::Vec, - #[prost(message, repeated, tag = "12")] - pub init_timeout_timestamps: ::prost::alloc::vec::Vec, - #[prost(message, repeated, tag = "13")] - pub exported_vsc_send_timestamps: ::prost::alloc::vec::Vec, + #[prost(message, repeated, tag = "14")] + pub consumer_addrs_to_prune_v2: ::prost::alloc::vec::Vec, } impl ::prost::Name for GenesisState { const NAME: &'static str = "GenesisState"; @@ -2550,6 +4904,7 @@ impl ::prost::Name for GenesisState { /// The provider CCV module's knowledge of consumer state. /// /// Note this type is only used internally to the provider CCV module. +#[allow(clippy::derive_partial_eq_without_eq)] #[derive(Clone, PartialEq, ::prost::Message)] pub struct ConsumerState { /// ChainID defines the chain ID for the consumer chain @@ -2575,10 +4930,9 @@ pub struct ConsumerState { >, #[prost(string, repeated, tag = "7")] pub slash_downtime_ack: ::prost::alloc::vec::Vec<::prost::alloc::string::String>, - /// UnbondingOpsIndex defines the unbonding operations waiting on this consumer - /// chain - #[prost(message, repeated, tag = "8")] - pub unbonding_ops_index: ::prost::alloc::vec::Vec, + /// the phase of the consumer chain + #[prost(enumeration = "ConsumerPhase", tag = "9")] + pub phase: i32, } impl ::prost::Name for ConsumerState { const NAME: &'static str = "ConsumerState"; @@ -2591,7 +4945,8 @@ impl ::prost::Name for ConsumerState { } } /// ValsetUpdateIdToHeight defines the genesis information for the mapping -/// of each valset udpate id to a block height +/// of each valset update id to a block height +#[allow(clippy::derive_partial_eq_without_eq)] #[derive(Clone, Copy, PartialEq, ::prost::Message)] pub struct ValsetUpdateIdToHeight { #[prost(uint64, tag = "1")] diff --git a/src/prost/interchain_security.ccv.v1.rs b/src/prost/interchain_security.ccv.v1.rs index ef12a591..4c0122a9 100644 --- a/src/prost/interchain_security.ccv.v1.rs +++ b/src/prost/interchain_security.ccv.v1.rs @@ -1,9 +1,148 @@ // This file is @generated by prost-build. +/// ConsumerParams defines the parameters for CCV consumer module. +/// +/// Note this type is referenced in both the consumer and provider CCV modules, +/// and persisted on the provider, see MakeConsumerGenesis and +/// SetConsumerGenesis. +/// +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct ConsumerParams { + /// TODO: Remove enabled flag and find a better way to setup integration tests + /// See: + #[prost(bool, tag = "1")] + pub enabled: bool, + /// ///////////////////// + /// Distribution Params + /// Number of blocks between ibc-token-transfers from the consumer chain to + /// the provider chain. Note that at this transmission event a fraction of + /// the accumulated tokens are divided and sent consumer redistribution + /// address. + #[prost(int64, tag = "2")] + pub blocks_per_distribution_transmission: i64, + /// Channel, and provider-chain receiving address to send distribution token + /// transfers over. These parameters is auto-set during the consumer <-> + /// provider handshake procedure. + #[prost(string, tag = "3")] + pub distribution_transmission_channel: ::prost::alloc::string::String, + #[prost(string, tag = "4")] + pub provider_fee_pool_addr_str: ::prost::alloc::string::String, + /// Sent CCV related IBC packets will timeout after this duration + #[prost(message, optional, tag = "5")] + pub ccv_timeout_period: ::core::option::Option< + ::tendermint_proto::google::protobuf::Duration, + >, + /// Sent transfer related IBC packets will timeout after this duration + #[prost(message, optional, tag = "6")] + pub transfer_timeout_period: ::core::option::Option< + ::tendermint_proto::google::protobuf::Duration, + >, + /// The fraction of tokens allocated to the consumer redistribution address + /// during distribution events. The fraction is a string representing a + /// decimal number. For example "0.75" would represent 75%. + #[prost(string, tag = "7")] + pub consumer_redistribution_fraction: ::prost::alloc::string::String, + /// The number of historical info entries to persist in store. + /// This param is a part of the cosmos sdk staking module. In the case of + /// a ccv enabled consumer chain, the ccv module acts as the staking module. + #[prost(int64, tag = "8")] + pub historical_entries: i64, + /// Unbonding period for the consumer, + /// which should be smaller than that of the provider in general. + #[prost(message, optional, tag = "9")] + pub unbonding_period: ::core::option::Option< + ::tendermint_proto::google::protobuf::Duration, + >, + /// !!! DEPRECATED !!! soft_opt_out_threshold is deprecated. see docs/docs/adrs/adr-015-partial-set-security.md + #[deprecated] + #[prost(string, tag = "10")] + pub soft_opt_out_threshold: ::prost::alloc::string::String, + /// Reward denoms. These are the denominations which are allowed to be sent to + /// the provider as rewards. + #[prost(string, repeated, tag = "11")] + pub reward_denoms: ::prost::alloc::vec::Vec<::prost::alloc::string::String>, + /// Provider-originated reward denoms. These are denoms coming from the + /// provider which are allowed to be used as rewards. e.g. "uatom" + #[prost(string, repeated, tag = "12")] + pub provider_reward_denoms: ::prost::alloc::vec::Vec<::prost::alloc::string::String>, + /// The period after which a consumer can retry sending a throttled packet. + #[prost(message, optional, tag = "13")] + pub retry_delay_period: ::core::option::Option< + ::tendermint_proto::google::protobuf::Duration, + >, +} +impl ::prost::Name for ConsumerParams { + const NAME: &'static str = "ConsumerParams"; + const PACKAGE: &'static str = "interchain_security.ccv.v1"; + fn full_name() -> ::prost::alloc::string::String { + "interchain_security.ccv.v1.ConsumerParams".into() + } + fn type_url() -> ::prost::alloc::string::String { + "/interchain_security.ccv.v1.ConsumerParams".into() + } +} +/// ConsumerGenesisState defines shared genesis information between provider and +/// consumer +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct ConsumerGenesisState { + #[prost(message, optional, tag = "1")] + pub params: ::core::option::Option, + #[prost(message, optional, tag = "2")] + pub provider: ::core::option::Option, + /// true for new chain, false for chain restart. + /// + /// TODO:Check if this is really needed + #[prost(bool, tag = "3")] + pub new_chain: bool, +} +impl ::prost::Name for ConsumerGenesisState { + const NAME: &'static str = "ConsumerGenesisState"; + const PACKAGE: &'static str = "interchain_security.ccv.v1"; + fn full_name() -> ::prost::alloc::string::String { + "interchain_security.ccv.v1.ConsumerGenesisState".into() + } + fn type_url() -> ::prost::alloc::string::String { + "/interchain_security.ccv.v1.ConsumerGenesisState".into() + } +} +/// ProviderInfo defines all information a consumer needs from a provider +/// Shared data type between provider and consumer +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct ProviderInfo { + /// ProviderClientState filled in on new chain, nil on restart. + #[prost(message, optional, tag = "1")] + pub client_state: ::core::option::Option< + super::super::super::ibc::lightclients::tendermint::v1::ClientState, + >, + /// ProviderConsensusState filled in on new chain, nil on restart. + #[prost(message, optional, tag = "2")] + pub consensus_state: ::core::option::Option< + super::super::super::ibc::lightclients::tendermint::v1::ConsensusState, + >, + /// InitialValset filled in on new chain and on restart. + #[prost(message, repeated, tag = "3")] + pub initial_val_set: ::prost::alloc::vec::Vec< + ::tendermint_proto::abci::ValidatorUpdate, + >, +} +impl ::prost::Name for ProviderInfo { + const NAME: &'static str = "ProviderInfo"; + const PACKAGE: &'static str = "interchain_security.ccv.v1"; + fn full_name() -> ::prost::alloc::string::String { + "interchain_security.ccv.v1.ProviderInfo".into() + } + fn type_url() -> ::prost::alloc::string::String { + "/interchain_security.ccv.v1.ProviderInfo".into() + } +} /// This packet is sent from provider chain to consumer chain if the validator /// set for consumer chain changes (due to new bonding/unbonding messages or /// slashing events) A VSCMatured packet from consumer chain will be sent /// asynchronously once unbonding period is over, and this will function as /// `UnbondingOver` message for this packet. +#[allow(clippy::derive_partial_eq_without_eq)] #[derive(Clone, PartialEq, ::prost::Message)] pub struct ValidatorSetChangePacketData { #[prost(message, repeated, tag = "1")] @@ -29,6 +168,7 @@ impl ::prost::Name for ValidatorSetChangePacketData { } /// This packet is sent from the consumer chain to the provider chain /// to notify that a VSC packet reached maturity on the consumer chain. +#[allow(clippy::derive_partial_eq_without_eq)] #[derive(Clone, Copy, PartialEq, ::prost::Message)] pub struct VscMaturedPacketData { /// the id of the VSC packet that reached maturity @@ -48,6 +188,7 @@ impl ::prost::Name for VscMaturedPacketData { /// This packet is sent from the consumer chain to the provider chain /// to request the slashing of a validator as a result of an infraction /// committed on the consumer chain. +#[allow(clippy::derive_partial_eq_without_eq)] #[derive(Clone, PartialEq, ::prost::Message)] pub struct SlashPacketData { #[prost(message, optional, tag = "1")] @@ -73,6 +214,7 @@ impl ::prost::Name for SlashPacketData { } } /// ConsumerPacketData contains a consumer packet data and a type tag +#[allow(clippy::derive_partial_eq_without_eq)] #[derive(Clone, PartialEq, ::prost::Message)] pub struct ConsumerPacketData { #[prost(enumeration = "ConsumerPacketDataType", tag = "1")] @@ -82,6 +224,7 @@ pub struct ConsumerPacketData { } /// Nested message and enum types in `ConsumerPacketData`. pub mod consumer_packet_data { + #[allow(clippy::derive_partial_eq_without_eq)] #[derive(Clone, PartialEq, ::prost::Oneof)] pub enum Data { #[prost(message, tag = "2")] @@ -101,6 +244,7 @@ impl ::prost::Name for ConsumerPacketData { } } /// Note this type is used during IBC handshake methods for both the consumer and provider +#[allow(clippy::derive_partial_eq_without_eq)] #[derive(Clone, PartialEq, ::prost::Message)] pub struct HandshakeMetadata { #[prost(string, tag = "1")] @@ -120,6 +264,7 @@ impl ::prost::Name for HandshakeMetadata { } /// ConsumerPacketData contains a consumer packet data and a type tag /// that is compatible with ICS v1 and v2 over the wire. It is not used for internal storage. +#[allow(clippy::derive_partial_eq_without_eq)] #[derive(Clone, PartialEq, ::prost::Message)] pub struct ConsumerPacketDataV1 { #[prost(enumeration = "ConsumerPacketDataType", tag = "1")] @@ -129,6 +274,7 @@ pub struct ConsumerPacketDataV1 { } /// Nested message and enum types in `ConsumerPacketDataV1`. pub mod consumer_packet_data_v1 { + #[allow(clippy::derive_partial_eq_without_eq)] #[derive(Clone, PartialEq, ::prost::Oneof)] pub enum Data { #[prost(message, tag = "2")] @@ -149,6 +295,7 @@ impl ::prost::Name for ConsumerPacketDataV1 { } /// This packet is sent from the consumer chain to the provider chain /// It is backward compatible with the ICS v1 and v2 version of the packet. +#[allow(clippy::derive_partial_eq_without_eq)] #[derive(Clone, PartialEq, ::prost::Message)] pub struct SlashPacketDataV1 { #[prost(message, optional, tag = "1")] @@ -209,7 +356,7 @@ impl ConsumerPacketDataType { } } } -/// InfractionType indicates the infraction type a validator commited. +/// InfractionType indicates the infraction type a validator committed. /// Note ccv.InfractionType to maintain compatibility between ICS versions /// using different versions of the cosmos-sdk and ibc-go modules. #[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)] @@ -244,242 +391,3 @@ impl InfractionType { } } } -/// ConsumerParams defines the parameters for CCV consumer module. -/// -/// Note this type is referenced in both the consumer and provider CCV modules, -/// and persisted on the provider, see MakeConsumerGenesis and SetConsumerGenesis. -/// -#[derive(Clone, PartialEq, ::prost::Message)] -pub struct ConsumerParams { - /// TODO: Remove enabled flag and find a better way to setup integration tests - /// See: - #[prost(bool, tag = "1")] - pub enabled: bool, - /// ///////////////////// - /// Distribution Params - /// Number of blocks between ibc-token-transfers from the consumer chain to - /// the provider chain. Note that at this transmission event a fraction of - /// the accumulated tokens are divided and sent consumer redistribution - /// address. - #[prost(int64, tag = "2")] - pub blocks_per_distribution_transmission: i64, - /// Channel, and provider-chain receiving address to send distribution token - /// transfers over. These parameters is auto-set during the consumer <-> - /// provider handshake procedure. - #[prost(string, tag = "3")] - pub distribution_transmission_channel: ::prost::alloc::string::String, - #[prost(string, tag = "4")] - pub provider_fee_pool_addr_str: ::prost::alloc::string::String, - /// Sent CCV related IBC packets will timeout after this duration - #[prost(message, optional, tag = "5")] - pub ccv_timeout_period: ::core::option::Option< - ::tendermint_proto::google::protobuf::Duration, - >, - /// Sent transfer related IBC packets will timeout after this duration - #[prost(message, optional, tag = "6")] - pub transfer_timeout_period: ::core::option::Option< - ::tendermint_proto::google::protobuf::Duration, - >, - /// The fraction of tokens allocated to the consumer redistribution address - /// during distribution events. The fraction is a string representing a - /// decimal number. For example "0.75" would represent 75%. - #[prost(string, tag = "7")] - pub consumer_redistribution_fraction: ::prost::alloc::string::String, - /// The number of historical info entries to persist in store. - /// This param is a part of the cosmos sdk staking module. In the case of - /// a ccv enabled consumer chain, the ccv module acts as the staking module. - #[prost(int64, tag = "8")] - pub historical_entries: i64, - /// Unbonding period for the consumer, - /// which should be smaller than that of the provider in general. - #[prost(message, optional, tag = "9")] - pub unbonding_period: ::core::option::Option< - ::tendermint_proto::google::protobuf::Duration, - >, - /// The threshold for the percentage of validators at the bottom of the set who - /// can opt out of running the consumer chain without being punished. For - /// example, a value of 0.05 means that the validators in the bottom 5% of the - /// set can opt out - #[prost(string, tag = "10")] - pub soft_opt_out_threshold: ::prost::alloc::string::String, - /// Reward denoms. These are the denominations which are allowed to be sent to - /// the provider as rewards. - #[prost(string, repeated, tag = "11")] - pub reward_denoms: ::prost::alloc::vec::Vec<::prost::alloc::string::String>, - /// Provider-originated reward denoms. These are denoms coming from the - /// provider which are allowed to be used as rewards. e.g. "uatom" - #[prost(string, repeated, tag = "12")] - pub provider_reward_denoms: ::prost::alloc::vec::Vec<::prost::alloc::string::String>, -} -impl ::prost::Name for ConsumerParams { - const NAME: &'static str = "ConsumerParams"; - const PACKAGE: &'static str = "interchain_security.ccv.v1"; - fn full_name() -> ::prost::alloc::string::String { - "interchain_security.ccv.v1.ConsumerParams".into() - } - fn type_url() -> ::prost::alloc::string::String { - "/interchain_security.ccv.v1.ConsumerParams".into() - } -} -/// ConsumerGenesisState defines the CCV consumer chain genesis state. -/// -/// Note this type is referenced in both the consumer and provider CCV modules, -/// and persisted on the provider, see MakeConsumerGenesis and SetConsumerGenesis. -#[derive(Clone, PartialEq, ::prost::Message)] -pub struct ConsumerGenesisState { - #[prost(message, optional, tag = "1")] - pub params: ::core::option::Option, - /// empty for a new chain, filled in on restart. - #[prost(string, tag = "2")] - pub provider_client_id: ::prost::alloc::string::String, - /// empty for a new chain, filled in on restart. - #[prost(string, tag = "3")] - pub provider_channel_id: ::prost::alloc::string::String, - /// true for new chain, false for chain restart. - #[prost(bool, tag = "4")] - pub new_chain: bool, - /// ProviderClientState filled in on new chain, nil on restart. - #[prost(message, optional, tag = "5")] - pub provider_client_state: ::core::option::Option< - super::super::super::ibc::lightclients::tendermint::v1::ClientState, - >, - /// ProviderConsensusState filled in on new chain, nil on restart. - #[prost(message, optional, tag = "6")] - pub provider_consensus_state: ::core::option::Option< - super::super::super::ibc::lightclients::tendermint::v1::ConsensusState, - >, - /// MaturingPackets nil on new chain, filled in on restart. - #[prost(message, repeated, tag = "7")] - pub maturing_packets: ::prost::alloc::vec::Vec, - /// InitialValset filled in on new chain and on restart. - #[prost(message, repeated, tag = "8")] - pub initial_val_set: ::prost::alloc::vec::Vec< - ::tendermint_proto::abci::ValidatorUpdate, - >, - /// HeightToValsetUpdateId nil on new chain, filled in on restart. - #[prost(message, repeated, tag = "9")] - pub height_to_valset_update_id: ::prost::alloc::vec::Vec, - /// OutstandingDowntimes nil on new chain, filled in on restart. - #[prost(message, repeated, tag = "10")] - pub outstanding_downtime_slashing: ::prost::alloc::vec::Vec, - /// PendingConsumerPackets nil on new chain, filled in on restart. - #[prost(message, optional, tag = "11")] - pub pending_consumer_packets: ::core::option::Option, - /// LastTransmissionBlockHeight nil on new chain, filled in on restart. - #[prost(message, optional, tag = "12")] - pub last_transmission_block_height: ::core::option::Option< - LastTransmissionBlockHeight, - >, - /// flag indicating whether the consumer CCV module starts in - #[prost(bool, tag = "13")] - pub pre_ccv: bool, -} -impl ::prost::Name for ConsumerGenesisState { - const NAME: &'static str = "ConsumerGenesisState"; - const PACKAGE: &'static str = "interchain_security.ccv.v1"; - fn full_name() -> ::prost::alloc::string::String { - "interchain_security.ccv.v1.ConsumerGenesisState".into() - } - fn type_url() -> ::prost::alloc::string::String { - "/interchain_security.ccv.v1.ConsumerGenesisState".into() - } -} -/// HeightValsetUpdateID represents a mapping internal to the consumer CCV module -/// AND used in shared consumer genesis state, which links a block height to each recv valset update id. -#[derive(Clone, Copy, PartialEq, ::prost::Message)] -pub struct HeightToValsetUpdateId { - #[prost(uint64, tag = "1")] - pub height: u64, - #[prost(uint64, tag = "2")] - pub valset_update_id: u64, -} -impl ::prost::Name for HeightToValsetUpdateId { - const NAME: &'static str = "HeightToValsetUpdateID"; - const PACKAGE: &'static str = "interchain_security.ccv.v1"; - fn full_name() -> ::prost::alloc::string::String { - "interchain_security.ccv.v1.HeightToValsetUpdateID".into() - } - fn type_url() -> ::prost::alloc::string::String { - "/interchain_security.ccv.v1.HeightToValsetUpdateID".into() - } -} -/// OutstandingDowntime defines the type used internally to the consumer CCV module, -/// AND used in shared consumer genesis state, in order to not send multiple slashing -/// requests for the same downtime infraction. -#[derive(Clone, PartialEq, ::prost::Message)] -pub struct OutstandingDowntime { - #[prost(string, tag = "1")] - pub validator_consensus_address: ::prost::alloc::string::String, -} -impl ::prost::Name for OutstandingDowntime { - const NAME: &'static str = "OutstandingDowntime"; - const PACKAGE: &'static str = "interchain_security.ccv.v1"; - fn full_name() -> ::prost::alloc::string::String { - "interchain_security.ccv.v1.OutstandingDowntime".into() - } - fn type_url() -> ::prost::alloc::string::String { - "/interchain_security.ccv.v1.OutstandingDowntime".into() - } -} -/// LastTransmissionBlockHeight is the last time validator holding -/// pools were transmitted to the provider chain. This type is used internally -/// to the consumer CCV module AND used in shared consumer genesis state. -#[derive(Clone, Copy, PartialEq, ::prost::Message)] -pub struct LastTransmissionBlockHeight { - #[prost(int64, tag = "1")] - pub height: i64, -} -impl ::prost::Name for LastTransmissionBlockHeight { - const NAME: &'static str = "LastTransmissionBlockHeight"; - const PACKAGE: &'static str = "interchain_security.ccv.v1"; - fn full_name() -> ::prost::alloc::string::String { - "interchain_security.ccv.v1.LastTransmissionBlockHeight".into() - } - fn type_url() -> ::prost::alloc::string::String { - "/interchain_security.ccv.v1.LastTransmissionBlockHeight".into() - } -} -/// MaturingVSCPacket represents a vsc packet that is maturing internal to the -/// consumer CCV module, where the consumer has not yet relayed a VSCMatured packet -/// back to the provider. This type is used internally to the consumer CCV module -/// AND used in shared consumer genesis state. -#[derive(Clone, Copy, PartialEq, ::prost::Message)] -pub struct MaturingVscPacket { - #[prost(uint64, tag = "1")] - pub vsc_id: u64, - #[prost(message, optional, tag = "2")] - pub maturity_time: ::core::option::Option< - ::tendermint_proto::google::protobuf::Timestamp, - >, -} -impl ::prost::Name for MaturingVscPacket { - const NAME: &'static str = "MaturingVSCPacket"; - const PACKAGE: &'static str = "interchain_security.ccv.v1"; - fn full_name() -> ::prost::alloc::string::String { - "interchain_security.ccv.v1.MaturingVSCPacket".into() - } - fn type_url() -> ::prost::alloc::string::String { - "/interchain_security.ccv.v1.MaturingVSCPacket".into() - } -} -/// ConsumerPacketDataList is a list of consumer packet data packets. -/// -/// Note this type is is used internally to the consumer CCV module -/// for exporting / importing state in InitGenesis and ExportGenesis, -/// AND included in the consumer genesis type (reffed by provider and consumer modules), -/// hence this is a shared type. -#[derive(Clone, PartialEq, ::prost::Message)] -pub struct ConsumerPacketDataList { - #[prost(message, repeated, tag = "1")] - pub list: ::prost::alloc::vec::Vec, -} -impl ::prost::Name for ConsumerPacketDataList { - const NAME: &'static str = "ConsumerPacketDataList"; - const PACKAGE: &'static str = "interchain_security.ccv.v1"; - fn full_name() -> ::prost::alloc::string::String { - "interchain_security.ccv.v1.ConsumerPacketDataList".into() - } - fn type_url() -> ::prost::alloc::string::String { - "/interchain_security.ccv.v1.ConsumerPacketDataList".into() - } -} diff --git a/src/prost/proto_descriptor.bin b/src/prost/proto_descriptor.bin index 84bf3891..13de26fb 100644 Binary files a/src/prost/proto_descriptor.bin and b/src/prost/proto_descriptor.bin differ diff --git a/src/prost/stride.interchainquery.v1.rs b/src/prost/stride.interchainquery.v1.rs index 9ad24596..4d4f6c8e 100644 --- a/src/prost/stride.interchainquery.v1.rs +++ b/src/prost/stride.interchainquery.v1.rs @@ -1,5 +1,6 @@ // This file is @generated by prost-build. /// MsgSubmitQueryResponse represents a message type to fulfil a query request. +#[allow(clippy::derive_partial_eq_without_eq)] #[derive(Clone, PartialEq, ::prost::Message)] pub struct MsgSubmitQueryResponse { #[prost(string, tag = "1")] @@ -27,6 +28,7 @@ impl ::prost::Name for MsgSubmitQueryResponse { } /// MsgSubmitQueryResponseResponse defines the MsgSubmitQueryResponse response /// type. +#[allow(clippy::derive_partial_eq_without_eq)] #[derive(Clone, Copy, PartialEq, ::prost::Message)] pub struct MsgSubmitQueryResponseResponse {} impl ::prost::Name for MsgSubmitQueryResponseResponse { @@ -66,8 +68,8 @@ pub mod msg_client { where T: tonic::client::GrpcService, T::Error: Into, - T::ResponseBody: Body + std::marker::Send + 'static, - ::Error: Into + std::marker::Send, + T::ResponseBody: Body + Send + 'static, + ::Error: Into + Send, { pub fn new(inner: T) -> Self { let inner = tonic::client::Grpc::new(inner); @@ -92,7 +94,7 @@ pub mod msg_client { >, , - >>::Error: Into + std::marker::Send + std::marker::Sync, + >>::Error: Into + Send + Sync, { MsgClient::new(InterceptedService::new(inner, interceptor)) } @@ -167,7 +169,7 @@ pub mod msg_server { use tonic::codegen::*; /// Generated trait containing gRPC methods that should be implemented for use with MsgServer. #[async_trait] - pub trait Msg: std::marker::Send + std::marker::Sync + 'static { + pub trait Msg: Send + Sync + 'static { /// SubmitQueryResponse defines a method for submit query responses. async fn submit_query_response( &self, @@ -179,14 +181,14 @@ pub mod msg_server { } /// Msg defines the interchainquery Msg service. #[derive(Debug)] - pub struct MsgServer { + pub struct MsgServer { inner: Arc, accept_compression_encodings: EnabledCompressionEncodings, send_compression_encodings: EnabledCompressionEncodings, max_decoding_message_size: Option, max_encoding_message_size: Option, } - impl MsgServer { + impl MsgServer { pub fn new(inner: T) -> Self { Self::from_arc(Arc::new(inner)) } @@ -240,8 +242,8 @@ pub mod msg_server { impl tonic::codegen::Service> for MsgServer where T: Msg, - B: Body + std::marker::Send + 'static, - B::Error: Into + std::marker::Send + 'static, + B: Body + Send + 'static, + B::Error: Into + Send + 'static, { type Response = http::Response; type Error = std::convert::Infallible; @@ -317,7 +319,7 @@ pub mod msg_server { } } } - impl Clone for MsgServer { + impl Clone for MsgServer { fn clone(&self) -> Self { let inner = self.inner.clone(); Self { @@ -329,9 +331,7 @@ pub mod msg_server { } } } - /// Generated gRPC service name - pub const SERVICE_NAME: &str = "stride.interchainquery.v1.Msg"; - impl tonic::server::NamedService for MsgServer { - const NAME: &'static str = SERVICE_NAME; + impl tonic::server::NamedService for MsgServer { + const NAME: &'static str = "stride.interchainquery.v1.Msg"; } } diff --git a/tools/proto-compiler/Cargo.lock b/tools/proto-compiler/Cargo.lock deleted file mode 100644 index 7fdf24ea..00000000 --- a/tools/proto-compiler/Cargo.lock +++ /dev/null @@ -1,1318 +0,0 @@ -# This file is automatically @generated by Cargo. -# It is not intended for manual editing. -version = 3 - -[[package]] -name = "aho-corasick" -version = "1.1.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b2969dcb958b36655471fc61f7e416fa76033bdd4bfed0678d8fee1e2d07a1f0" -dependencies = [ - "memchr", -] - -[[package]] -name = "anyhow" -version = "1.0.62" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1485d4d2cc45e7b201ee3767015c96faa5904387c9d87c6efdd0fb511f12d305" - -[[package]] -name = "argh" -version = "0.1.8" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a7e7e4aa7e40747e023c0761dafcb42333a9517575bbf1241747f68dd3177a62" -dependencies = [ - "argh_derive", - "argh_shared", -] - -[[package]] -name = "argh_derive" -version = "0.1.8" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "69f2bd7ff6ed6414f4e5521bd509bae46454bbd513801767ced3f21a751ab4bc" -dependencies = [ - "argh_shared", - "heck 0.3.3", - "proc-macro2", - "quote", - "syn 1.0.99", -] - -[[package]] -name = "argh_shared" -version = "0.1.8" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "47253b98986dafc7a3e1cf3259194f1f47ac61abb57a57f46ec09e48d004ecda" - -[[package]] -name = "async-stream" -version = "0.3.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "cd56dd203fef61ac097dd65721a419ddccb106b2d2b70ba60a6b529f03961a51" -dependencies = [ - "async-stream-impl", - "futures-core", - "pin-project-lite", -] - -[[package]] -name = "async-stream-impl" -version = "0.3.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "16e62a023e7c117e27523144c5d2459f4397fcc3cab0085af8e2224f643a0193" -dependencies = [ - "proc-macro2", - "quote", - "syn 2.0.48", -] - -[[package]] -name = "async-trait" -version = "0.1.68" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b9ccdd8f2a161be9bd5c023df56f1b2a0bd1d83872ae53b71a84a12c9bf6e842" -dependencies = [ - "proc-macro2", - "quote", - "syn 2.0.48", -] - -[[package]] -name = "autocfg" -version = "1.1.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d468802bab17cbc0cc575e9b053f41e72aa36bfa6b7f55e3529ffa43161b97fa" - -[[package]] -name = "axum" -version = "0.6.12" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "349f8ccfd9221ee7d1f3d4b33e1f8319b3a81ed8f61f2ea40b37b859794b4491" -dependencies = [ - "async-trait", - "axum-core", - "bitflags 1.3.2", - "bytes", - "futures-util", - "http", - "http-body", - "hyper", - "itoa", - "matchit", - "memchr", - "mime", - "percent-encoding", - "pin-project-lite", - "rustversion", - "serde", - "sync_wrapper", - "tower", - "tower-layer", - "tower-service", -] - -[[package]] -name = "axum-core" -version = "0.3.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b2f958c80c248b34b9a877a643811be8dbca03ca5ba827f2b63baf3a81e5fc4e" -dependencies = [ - "async-trait", - "bytes", - "futures-util", - "http", - "http-body", - "mime", - "rustversion", - "tower-layer", - "tower-service", -] - -[[package]] -name = "base64" -version = "0.21.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a4a4ddaa51a5bc52a6948f74c06d20aaaddb71924eab79b8c97a8c556e942d6a" - -[[package]] -name = "bitflags" -version = "1.3.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "bef38d45163c2f1dde094a7dfd33ccf595c92905c8f8f4fdc18d06fb1037718a" - -[[package]] -name = "bitflags" -version = "2.4.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ed570934406eb16438a4e976b1b4500774099c13b8cb96eec99f620f05090ddf" - -[[package]] -name = "bytes" -version = "1.2.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ec8a7b6a70fde80372154c65702f00a0f56f3e1c36abbc6c440484be248856db" - -[[package]] -name = "cc" -version = "1.0.73" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2fff2a6927b3bb87f9595d67196a70493f627687a71d87a0d692242c33f58c11" -dependencies = [ - "jobserver", -] - -[[package]] -name = "cfg-if" -version = "1.0.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "baf1de4339761588bc0619e3cbc0120ee582ebb74b53b4efbf79117bd2da40fd" - -[[package]] -name = "either" -version = "1.8.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "90e5c1c8368803113bf0c9584fc495a58b86dc8a29edbf8fe877d21d9507e797" - -[[package]] -name = "equivalent" -version = "1.0.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5443807d6dff69373d433ab9ef5378ad8df50ca6298caf15de6e52e24aaf54d5" - -[[package]] -name = "fastrand" -version = "1.8.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a7a407cfaa3385c4ae6b23e84623d48c2798d06e3e6a1878f7f59f17b3f86499" -dependencies = [ - "instant", -] - -[[package]] -name = "fixedbitset" -version = "0.4.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0ce7134b9999ecaf8bcd65542e436736ef32ddca1b3e06094cb6ec5755203b80" - -[[package]] -name = "fnv" -version = "1.0.7" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3f9eec918d3f24069decb9af1554cad7c880e2da24a9afd88aca000531ab82c1" - -[[package]] -name = "form_urlencoded" -version = "1.0.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5fc25a87fa4fd2094bffb06925852034d90a17f0d1e05197d4956d3555752191" -dependencies = [ - "matches", - "percent-encoding", -] - -[[package]] -name = "futures-channel" -version = "0.3.23" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2bfc52cbddcfd745bf1740338492bb0bd83d76c67b445f91c5fb29fae29ecaa1" -dependencies = [ - "futures-core", -] - -[[package]] -name = "futures-core" -version = "0.3.23" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d2acedae88d38235936c3922476b10fced7b2b68136f5e3c03c2d5be348a1115" - -[[package]] -name = "futures-sink" -version = "0.3.23" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ca0bae1fe9752cf7fd9b0064c674ae63f97b37bc714d745cbde0afb7ec4e6765" - -[[package]] -name = "futures-task" -version = "0.3.23" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "842fc63b931f4056a24d59de13fb1272134ce261816e063e634ad0c15cdc5306" - -[[package]] -name = "futures-util" -version = "0.3.23" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f0828a5471e340229c11c77ca80017937ce3c58cb788a17e5f1c2d5c485a9577" -dependencies = [ - "futures-core", - "futures-task", - "pin-project-lite", - "pin-utils", -] - -[[package]] -name = "getrandom" -version = "0.2.7" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4eb1a864a501629691edf6c15a593b7a51eebaa1e8468e9ddc623de7c9b58ec6" -dependencies = [ - "cfg-if", - "libc", - "wasi", -] - -[[package]] -name = "git2" -version = "0.18.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "fbf97ba92db08df386e10c8ede66a2a0369bd277090afd8710e19e38de9ec0cd" -dependencies = [ - "bitflags 2.4.2", - "libc", - "libgit2-sys", - "log", - "openssl-probe", - "openssl-sys", - "url", -] - -[[package]] -name = "h2" -version = "0.3.24" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "bb2c4422095b67ee78da96fbb51a4cc413b3b25883c7717ff7ca1ab31022c9c9" -dependencies = [ - "bytes", - "fnv", - "futures-core", - "futures-sink", - "futures-util", - "http", - "indexmap 2.1.0", - "slab", - "tokio", - "tokio-util", - "tracing", -] - -[[package]] -name = "hashbrown" -version = "0.12.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8a9ee70c43aaf417c914396645a0fa852624801b24ebb7ae78fe8272889ac888" - -[[package]] -name = "hashbrown" -version = "0.14.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "290f1a1d9242c78d09ce40a5e87e7554ee637af1351968159f4952f028f75604" - -[[package]] -name = "heck" -version = "0.3.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6d621efb26863f0e9924c6ac577e8275e5e6b77455db64ffa6c65c904e9e132c" -dependencies = [ - "unicode-segmentation", -] - -[[package]] -name = "heck" -version = "0.4.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2540771e65fc8cb83cd6e8a237f70c319bd5c29f78ed1084ba5d50eeac86f7f9" - -[[package]] -name = "http" -version = "0.2.9" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "bd6effc99afb63425aff9b05836f029929e345a6148a14b7ecd5ab67af944482" -dependencies = [ - "bytes", - "fnv", - "itoa", -] - -[[package]] -name = "http-body" -version = "0.4.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d5f38f16d184e36f2408a55281cd658ecbd3ca05cce6d6510a176eca393e26d1" -dependencies = [ - "bytes", - "http", - "pin-project-lite", -] - -[[package]] -name = "httparse" -version = "1.8.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d897f394bad6a705d5f4104762e116a75639e470d80901eed05a860a95cb1904" - -[[package]] -name = "httpdate" -version = "1.0.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c4a1e36c821dbe04574f602848a19f742f4fb3c98d40449f11bcad18d6b17421" - -[[package]] -name = "hyper" -version = "0.14.28" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "bf96e135eb83a2a8ddf766e426a841d8ddd7449d5f00d34ea02b41d2f19eef80" -dependencies = [ - "bytes", - "futures-channel", - "futures-core", - "futures-util", - "h2", - "http", - "http-body", - "httparse", - "httpdate", - "itoa", - "pin-project-lite", - "socket2", - "tokio", - "tower-service", - "tracing", - "want", -] - -[[package]] -name = "hyper-timeout" -version = "0.4.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "bbb958482e8c7be4bc3cf272a766a2b0bf1a6755e7a6ae777f017a31d11b13b1" -dependencies = [ - "hyper", - "pin-project-lite", - "tokio", - "tokio-io-timeout", -] - -[[package]] -name = "ibc-proto-compiler" -version = "0.2.0" -dependencies = [ - "argh", - "git2", - "informalsystems-pbjson-build", - "prost-build", - "similar", - "tonic", - "tonic-build", - "walkdir", -] - -[[package]] -name = "idna" -version = "0.2.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "418a0a6fab821475f634efe3ccc45c013f742efe03d853e8d3355d5cb850ecf8" -dependencies = [ - "matches", - "unicode-bidi", - "unicode-normalization", -] - -[[package]] -name = "indexmap" -version = "1.9.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "10a35a97730320ffe8e2d410b5d3b69279b98d2c14bdb8b70ea89ecf7888d41e" -dependencies = [ - "autocfg", - "hashbrown 0.12.3", -] - -[[package]] -name = "indexmap" -version = "2.1.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d530e1a18b1cb4c484e6e34556a0d948706958449fca0cab753d649f2bce3d1f" -dependencies = [ - "equivalent", - "hashbrown 0.14.3", -] - -[[package]] -name = "informalsystems-pbjson-build" -version = "0.7.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6bd45cde4e45f1f214ae854eeee74ebfe67871c6dc6cc0b5f7cb87b513f0d318" -dependencies = [ - "heck 0.4.0", - "itertools 0.12.0", - "prost", - "prost-types", -] - -[[package]] -name = "instant" -version = "0.1.12" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7a5bbe824c507c5da5956355e86a746d82e0e1464f65d862cc5e71da70e94b2c" -dependencies = [ - "cfg-if", -] - -[[package]] -name = "itertools" -version = "0.10.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a9a9d19fa1e79b6215ff29b9d6880b706147f16e9b1dbb1e4e5947b5b02bc5e3" -dependencies = [ - "either", -] - -[[package]] -name = "itertools" -version = "0.12.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "25db6b064527c5d482d0423354fcd07a89a2dfe07b67892e62411946db7f07b0" -dependencies = [ - "either", -] - -[[package]] -name = "itoa" -version = "1.0.6" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "453ad9f582a441959e5f0d088b02ce04cfe8d51a8eaf077f12ac6d3e94164ca6" - -[[package]] -name = "jobserver" -version = "0.1.24" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "af25a77299a7f711a01975c35a6a424eb6862092cc2d6c72c4ed6cbc56dfc1fa" -dependencies = [ - "libc", -] - -[[package]] -name = "lazy_static" -version = "1.4.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e2abad23fbc42b3700f2f279844dc832adb2b2eb069b2df918f455c4e18cc646" - -[[package]] -name = "libc" -version = "0.2.141" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3304a64d199bb964be99741b7a14d26972741915b3649639149b2479bb46f4b5" - -[[package]] -name = "libgit2-sys" -version = "0.16.1+1.7.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f2a2bb3680b094add03bb3732ec520ece34da31a8cd2d633d1389d0f0fb60d0c" -dependencies = [ - "cc", - "libc", - "libssh2-sys", - "libz-sys", - "openssl-sys", - "pkg-config", -] - -[[package]] -name = "libssh2-sys" -version = "0.3.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2dc8a030b787e2119a731f1951d6a773e2280c660f8ec4b0f5e1505a386e71ee" -dependencies = [ - "cc", - "libc", - "libz-sys", - "openssl-sys", - "pkg-config", - "vcpkg", -] - -[[package]] -name = "libz-sys" -version = "1.1.8" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9702761c3935f8cc2f101793272e202c72b99da8f4224a19ddcf1279a6450bbf" -dependencies = [ - "cc", - "libc", - "pkg-config", - "vcpkg", -] - -[[package]] -name = "log" -version = "0.4.17" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "abb12e687cfb44aa40f41fc3978ef76448f9b6038cad6aef4259d3c095a2382e" -dependencies = [ - "cfg-if", -] - -[[package]] -name = "matches" -version = "0.1.9" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a3e378b66a060d48947b590737b30a1be76706c8dd7b8ba0f2fe3989c68a853f" - -[[package]] -name = "matchit" -version = "0.7.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b87248edafb776e59e6ee64a79086f65890d3510f2c656c000bf2a7e8a0aea40" - -[[package]] -name = "memchr" -version = "2.5.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2dffe52ecf27772e601905b7522cb4ef790d2cc203488bbd0e2fe85fcb74566d" - -[[package]] -name = "mime" -version = "0.3.16" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2a60c7ce501c71e03a9c9c0d35b861413ae925bd979cc7a4e30d060069aaac8d" - -[[package]] -name = "mio" -version = "0.8.4" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "57ee1c23c7c63b0c9250c339ffdc69255f110b298b901b9f6c82547b7b87caaf" -dependencies = [ - "libc", - "log", - "wasi", - "windows-sys 0.36.1", -] - -[[package]] -name = "multimap" -version = "0.8.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e5ce46fe64a9d73be07dcbe690a38ce1b293be448fd8ce1e6c1b8062c9f72c6a" - -[[package]] -name = "once_cell" -version = "1.19.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3fdb12b2476b595f9358c5161aa467c2438859caa136dec86c26fdd2efe17b92" - -[[package]] -name = "openssl-probe" -version = "0.1.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ff011a302c396a5197692431fc1948019154afc178baf7d8e37367442a4601cf" - -[[package]] -name = "openssl-sys" -version = "0.9.75" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e5f9bd0c2710541a3cda73d6f9ac4f1b240de4ae261065d309dbe73d9dceb42f" -dependencies = [ - "autocfg", - "cc", - "libc", - "pkg-config", - "vcpkg", -] - -[[package]] -name = "percent-encoding" -version = "2.1.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d4fd5641d01c8f18a23da7b6fe29298ff4b55afcccdf78973b24cf3175fee32e" - -[[package]] -name = "petgraph" -version = "0.6.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e6d5014253a1331579ce62aa67443b4a658c5e7dd03d4bc6d302b94474888143" -dependencies = [ - "fixedbitset", - "indexmap 1.9.1", -] - -[[package]] -name = "pin-project" -version = "1.0.12" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ad29a609b6bcd67fee905812e544992d216af9d755757c05ed2d0e15a74c6ecc" -dependencies = [ - "pin-project-internal", -] - -[[package]] -name = "pin-project-internal" -version = "1.0.12" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "069bdb1e05adc7a8990dce9cc75370895fbe4e3d58b9b73bf1aee56359344a55" -dependencies = [ - "proc-macro2", - "quote", - "syn 1.0.99", -] - -[[package]] -name = "pin-project-lite" -version = "0.2.9" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e0a7ae3ac2f1173085d398531c705756c94a4c56843785df85a60c1a0afac116" - -[[package]] -name = "pin-utils" -version = "0.1.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8b870d8c151b6f2fb93e84a13146138f05d02ed11c7e7c54f8826aaaf7c9f184" - -[[package]] -name = "pkg-config" -version = "0.3.25" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1df8c4ec4b0627e53bdf214615ad287367e482558cf84b109250b37464dc03ae" - -[[package]] -name = "ppv-lite86" -version = "0.2.16" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "eb9f9e6e233e5c4a35559a617bf40a4ec447db2e84c20b55a6f83167b7e57872" - -[[package]] -name = "prettyplease" -version = "0.2.16" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a41cf62165e97c7f814d2221421dbb9afcbcdb0a88068e5ea206e19951c2cbb5" -dependencies = [ - "proc-macro2", - "syn 2.0.48", -] - -[[package]] -name = "proc-macro2" -version = "1.0.76" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "95fc56cda0b5c3325f5fbbd7ff9fda9e02bb00bb3dac51252d2f1bfa1cb8cc8c" -dependencies = [ - "unicode-ident", -] - -[[package]] -name = "prost" -version = "0.12.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "146c289cda302b98a28d40c8b3b90498d6e526dd24ac2ecea73e4e491685b94a" -dependencies = [ - "bytes", - "prost-derive", -] - -[[package]] -name = "prost-build" -version = "0.12.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c55e02e35260070b6f716a2423c2ff1c3bb1642ddca6f99e1f26d06268a0e2d2" -dependencies = [ - "bytes", - "heck 0.4.0", - "itertools 0.10.3", - "log", - "multimap", - "once_cell", - "petgraph", - "prettyplease", - "prost", - "prost-types", - "regex", - "syn 2.0.48", - "tempfile", - "which", -] - -[[package]] -name = "prost-derive" -version = "0.12.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "efb6c9a1dd1def8e2124d17e83a20af56f1570d6c2d2bd9e266ccb768df3840e" -dependencies = [ - "anyhow", - "itertools 0.10.3", - "proc-macro2", - "quote", - "syn 2.0.48", -] - -[[package]] -name = "prost-types" -version = "0.12.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "193898f59edcf43c26227dcd4c8427f00d99d61e95dcde58dabd49fa291d470e" -dependencies = [ - "prost", -] - -[[package]] -name = "quote" -version = "1.0.35" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "291ec9ab5efd934aaf503a6466c5d5251535d108ee747472c3977cc5acc868ef" -dependencies = [ - "proc-macro2", -] - -[[package]] -name = "rand" -version = "0.8.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "34af8d1a0e25924bc5b7c43c079c942339d8f0a8b57c39049bef581b46327404" -dependencies = [ - "libc", - "rand_chacha", - "rand_core", -] - -[[package]] -name = "rand_chacha" -version = "0.3.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e6c10a63a0fa32252be49d21e7709d4d4baf8d231c2dbce1eaa8141b9b127d88" -dependencies = [ - "ppv-lite86", - "rand_core", -] - -[[package]] -name = "rand_core" -version = "0.6.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d34f1408f55294453790c48b2f1ebbb1c5b4b7563eb1f418bcfcfdbb06ebb4e7" -dependencies = [ - "getrandom", -] - -[[package]] -name = "redox_syscall" -version = "0.2.16" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "fb5a58c1855b4b6819d59012155603f0b22ad30cad752600aadfcb695265519a" -dependencies = [ - "bitflags 1.3.2", -] - -[[package]] -name = "regex" -version = "1.9.4" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "12de2eff854e5fa4b1295edd650e227e9d8fb0c9e90b12e7f36d6a6811791a29" -dependencies = [ - "aho-corasick", - "memchr", - "regex-automata", - "regex-syntax", -] - -[[package]] -name = "regex-automata" -version = "0.3.7" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "49530408a136e16e5b486e883fbb6ba058e8e4e8ae6621a77b048b314336e629" -dependencies = [ - "aho-corasick", - "memchr", - "regex-syntax", -] - -[[package]] -name = "regex-syntax" -version = "0.7.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "dbb5fb1acd8a1a18b3dd5be62d25485eb770e05afb408a9627d14d451bae12da" - -[[package]] -name = "remove_dir_all" -version = "0.5.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3acd125665422973a33ac9d3dd2df85edad0f4ae9b00dafb1a05e43a9f5ef8e7" -dependencies = [ - "winapi", -] - -[[package]] -name = "rustversion" -version = "1.0.12" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4f3208ce4d8448b3f3e7d168a73f5e0c43a61e32930de3bceeccedb388b6bf06" - -[[package]] -name = "same-file" -version = "1.0.6" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "93fc1dc3aaa9bfed95e02e6eadabb4baf7e3078b0bd1b4d7b6b0b68378900502" -dependencies = [ - "winapi-util", -] - -[[package]] -name = "serde" -version = "1.0.143" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "53e8e5d5b70924f74ff5c6d64d9a5acd91422117c60f48c4e07855238a254553" - -[[package]] -name = "similar" -version = "2.2.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "420acb44afdae038210c99e69aae24109f32f15500aa708e81d46c9f29d55fcf" - -[[package]] -name = "slab" -version = "0.4.7" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4614a76b2a8be0058caa9dbbaf66d988527d86d003c11a94fbd335d7661edcef" -dependencies = [ - "autocfg", -] - -[[package]] -name = "socket2" -version = "0.4.9" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "64a4a911eed85daf18834cfaa86a79b7d266ff93ff5ba14005426219480ed662" -dependencies = [ - "libc", - "winapi", -] - -[[package]] -name = "syn" -version = "1.0.99" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "58dbef6ec655055e20b86b15a8cc6d439cca19b667537ac6a1369572d151ab13" -dependencies = [ - "proc-macro2", - "quote", - "unicode-ident", -] - -[[package]] -name = "syn" -version = "2.0.48" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0f3531638e407dfc0814761abb7c00a5b54992b849452a0646b7f65c9f770f3f" -dependencies = [ - "proc-macro2", - "quote", - "unicode-ident", -] - -[[package]] -name = "sync_wrapper" -version = "0.1.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "20518fe4a4c9acf048008599e464deb21beeae3d3578418951a189c235a7a9a8" - -[[package]] -name = "tempfile" -version = "3.3.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5cdb1ef4eaeeaddc8fbd371e5017057064af0911902ef36b39801f67cc6d79e4" -dependencies = [ - "cfg-if", - "fastrand", - "libc", - "redox_syscall", - "remove_dir_all", - "winapi", -] - -[[package]] -name = "tinyvec" -version = "1.6.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "87cc5ceb3875bb20c2890005a4e226a4651264a5c75edb2421b52861a0a0cb50" -dependencies = [ - "tinyvec_macros", -] - -[[package]] -name = "tinyvec_macros" -version = "0.1.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "cda74da7e1a664f795bb1f8a87ec406fb89a02522cf6e50620d016add6dbbf5c" - -[[package]] -name = "tokio" -version = "1.25.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c8e00990ebabbe4c14c08aca901caed183ecd5c09562a12c824bb53d3c3fd3af" -dependencies = [ - "autocfg", - "bytes", - "libc", - "memchr", - "mio", - "pin-project-lite", - "socket2", - "windows-sys 0.42.0", -] - -[[package]] -name = "tokio-io-timeout" -version = "1.2.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "30b74022ada614a1b4834de765f9bb43877f910cc8ce4be40e89042c9223a8bf" -dependencies = [ - "pin-project-lite", - "tokio", -] - -[[package]] -name = "tokio-stream" -version = "0.1.9" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "df54d54117d6fdc4e4fea40fe1e4e566b3505700e148a6827e59b34b0d2600d9" -dependencies = [ - "futures-core", - "pin-project-lite", - "tokio", -] - -[[package]] -name = "tokio-util" -version = "0.7.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "cc463cd8deddc3770d20f9852143d50bf6094e640b485cb2e189a2099085ff45" -dependencies = [ - "bytes", - "futures-core", - "futures-sink", - "pin-project-lite", - "tokio", - "tracing", -] - -[[package]] -name = "tonic" -version = "0.10.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d560933a0de61cf715926b9cac824d4c883c2c43142f787595e48280c40a1d0e" -dependencies = [ - "async-stream", - "async-trait", - "axum", - "base64", - "bytes", - "h2", - "http", - "http-body", - "hyper", - "hyper-timeout", - "percent-encoding", - "pin-project", - "prost", - "tokio", - "tokio-stream", - "tower", - "tower-layer", - "tower-service", - "tracing", -] - -[[package]] -name = "tonic-build" -version = "0.10.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9d021fc044c18582b9a2408cd0dd05b1596e3ecdb5c4df822bb0183545683889" -dependencies = [ - "prettyplease", - "proc-macro2", - "prost-build", - "quote", - "syn 2.0.48", -] - -[[package]] -name = "tower" -version = "0.4.13" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b8fa9be0de6cf49e536ce1851f987bd21a43b771b09473c3549a6c853db37c1c" -dependencies = [ - "futures-core", - "futures-util", - "indexmap 1.9.1", - "pin-project", - "pin-project-lite", - "rand", - "slab", - "tokio", - "tokio-util", - "tower-layer", - "tower-service", - "tracing", -] - -[[package]] -name = "tower-layer" -version = "0.3.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c20c8dbed6283a09604c3e69b4b7eeb54e298b8a600d4d5ecb5ad39de609f1d0" - -[[package]] -name = "tower-service" -version = "0.3.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b6bc1c9ce2b5135ac7f93c72918fc37feb872bdc6a5533a8b85eb4b86bfdae52" - -[[package]] -name = "tracing" -version = "0.1.36" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2fce9567bd60a67d08a16488756721ba392f24f29006402881e43b19aac64307" -dependencies = [ - "cfg-if", - "pin-project-lite", - "tracing-attributes", - "tracing-core", -] - -[[package]] -name = "tracing-attributes" -version = "0.1.22" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "11c75893af559bc8e10716548bdef5cb2b983f8e637db9d0e15126b61b484ee2" -dependencies = [ - "proc-macro2", - "quote", - "syn 1.0.99", -] - -[[package]] -name = "tracing-core" -version = "0.1.29" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5aeea4303076558a00714b823f9ad67d58a3bbda1df83d8827d21193156e22f7" -dependencies = [ - "once_cell", -] - -[[package]] -name = "try-lock" -version = "0.2.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "59547bce71d9c38b83d9c0e92b6066c4253371f15005def0c30d9657f50c7642" - -[[package]] -name = "unicode-bidi" -version = "0.3.8" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "099b7128301d285f79ddd55b9a83d5e6b9e97c92e0ea0daebee7263e932de992" - -[[package]] -name = "unicode-ident" -version = "1.0.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c4f5b37a154999a8f3f98cc23a628d850e154479cd94decf3414696e12e31aaf" - -[[package]] -name = "unicode-normalization" -version = "0.1.21" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "854cbdc4f7bc6ae19c820d44abdc3277ac3e1b2b93db20a636825d9322fb60e6" -dependencies = [ - "tinyvec", -] - -[[package]] -name = "unicode-segmentation" -version = "1.9.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7e8820f5d777f6224dc4be3632222971ac30164d4a258d595640799554ebfd99" - -[[package]] -name = "url" -version = "2.2.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a507c383b2d33b5fc35d1861e77e6b383d158b2da5e14fe51b83dfedf6fd578c" -dependencies = [ - "form_urlencoded", - "idna", - "matches", - "percent-encoding", -] - -[[package]] -name = "vcpkg" -version = "0.2.15" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "accd4ea62f7bb7a82fe23066fb0957d48ef677f6eeb8215f372f52e48bb32426" - -[[package]] -name = "walkdir" -version = "2.3.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "808cf2735cd4b6866113f648b791c6adc5714537bc222d9347bb203386ffda56" -dependencies = [ - "same-file", - "winapi", - "winapi-util", -] - -[[package]] -name = "want" -version = "0.3.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1ce8a968cb1cd110d136ff8b819a556d6fb6d919363c61534f6860c7eb172ba0" -dependencies = [ - "log", - "try-lock", -] - -[[package]] -name = "wasi" -version = "0.11.0+wasi-snapshot-preview1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9c8d87e72b64a3b4db28d11ce29237c246188f4f51057d65a7eab63b7987e423" - -[[package]] -name = "which" -version = "4.2.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5c4fb54e6113b6a8772ee41c3404fb0301ac79604489467e0a9ce1f3e97c24ae" -dependencies = [ - "either", - "lazy_static", - "libc", -] - -[[package]] -name = "winapi" -version = "0.3.9" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5c839a674fcd7a98952e593242ea400abe93992746761e38641405d28b00f419" -dependencies = [ - "winapi-i686-pc-windows-gnu", - "winapi-x86_64-pc-windows-gnu", -] - -[[package]] -name = "winapi-i686-pc-windows-gnu" -version = "0.4.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ac3b87c63620426dd9b991e5ce0329eff545bccbbb34f3be09ff6fb6ab51b7b6" - -[[package]] -name = "winapi-util" -version = "0.1.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "70ec6ce85bb158151cae5e5c87f95a8e97d2c0c4b001223f33a334e3ce5de178" -dependencies = [ - "winapi", -] - -[[package]] -name = "winapi-x86_64-pc-windows-gnu" -version = "0.4.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "712e227841d057c1ee1cd2fb22fa7e5a5461ae8e48fa2ca79ec42cfc1931183f" - -[[package]] -name = "windows-sys" -version = "0.36.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ea04155a16a59f9eab786fe12a4a450e75cdb175f9e0d80da1e17db09f55b8d2" -dependencies = [ - "windows_aarch64_msvc 0.36.1", - "windows_i686_gnu 0.36.1", - "windows_i686_msvc 0.36.1", - "windows_x86_64_gnu 0.36.1", - "windows_x86_64_msvc 0.36.1", -] - -[[package]] -name = "windows-sys" -version = "0.42.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5a3e1820f08b8513f676f7ab6c1f99ff312fb97b553d30ff4dd86f9f15728aa7" -dependencies = [ - "windows_aarch64_gnullvm", - "windows_aarch64_msvc 0.42.1", - "windows_i686_gnu 0.42.1", - "windows_i686_msvc 0.42.1", - "windows_x86_64_gnu 0.42.1", - "windows_x86_64_gnullvm", - "windows_x86_64_msvc 0.42.1", -] - -[[package]] -name = "windows_aarch64_gnullvm" -version = "0.42.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8c9864e83243fdec7fc9c5444389dcbbfd258f745e7853198f365e3c4968a608" - -[[package]] -name = "windows_aarch64_msvc" -version = "0.36.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9bb8c3fd39ade2d67e9874ac4f3db21f0d710bee00fe7cab16949ec184eeaa47" - -[[package]] -name = "windows_aarch64_msvc" -version = "0.42.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4c8b1b673ffc16c47a9ff48570a9d85e25d265735c503681332589af6253c6c7" - -[[package]] -name = "windows_i686_gnu" -version = "0.36.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "180e6ccf01daf4c426b846dfc66db1fc518f074baa793aa7d9b9aaeffad6a3b6" - -[[package]] -name = "windows_i686_gnu" -version = "0.42.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "de3887528ad530ba7bdbb1faa8275ec7a1155a45ffa57c37993960277145d640" - -[[package]] -name = "windows_i686_msvc" -version = "0.36.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e2e7917148b2812d1eeafaeb22a97e4813dfa60a3f8f78ebe204bcc88f12f024" - -[[package]] -name = "windows_i686_msvc" -version = "0.42.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "bf4d1122317eddd6ff351aa852118a2418ad4214e6613a50e0191f7004372605" - -[[package]] -name = "windows_x86_64_gnu" -version = "0.36.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4dcd171b8776c41b97521e5da127a2d86ad280114807d0b2ab1e462bc764d9e1" - -[[package]] -name = "windows_x86_64_gnu" -version = "0.42.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c1040f221285e17ebccbc2591ffdc2d44ee1f9186324dd3e84e99ac68d699c45" - -[[package]] -name = "windows_x86_64_gnullvm" -version = "0.42.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "628bfdf232daa22b0d64fdb62b09fcc36bb01f05a3939e20ab73aaf9470d0463" - -[[package]] -name = "windows_x86_64_msvc" -version = "0.36.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c811ca4a8c853ef420abd8592ba53ddbbac90410fab6903b3e79972a631f7680" - -[[package]] -name = "windows_x86_64_msvc" -version = "0.42.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "447660ad36a13288b1db4d4248e857b510e8c3a225c822ba4fb748c0aafecffd" diff --git a/tools/proto-compiler/Cargo.toml b/tools/proto-compiler/Cargo.toml index b4525e26..0f6b5e59 100644 --- a/tools/proto-compiler/Cargo.toml +++ b/tools/proto-compiler/Cargo.toml @@ -11,8 +11,8 @@ git2 = "0.19" prost-build = "0.13" walkdir = "2.3" argh = "0.1" -tonic = "0.12" -tonic-build = "0.12" +tonic = "0.12.3" +tonic-build = "0.12.3" similar = "2.2" informalsystems-pbjson-build = "0.7.0" regex = "1" diff --git a/tools/proto-compiler/src/cmd/compile.rs b/tools/proto-compiler/src/cmd/compile.rs index 966084d1..77347353 100644 --- a/tools/proto-compiler/src/cmd/compile.rs +++ b/tools/proto-compiler/src/cmd/compile.rs @@ -169,7 +169,7 @@ impl CompileCmd { .type_attribute(".ibc.core.connection.v1.Counterparty", attrs_jsonschema) .type_attribute(".ibc.core.connection.v1.Version", attrs_jsonschema) .type_attribute(".ibc.lightclients.wasm.v1.ClientMessage", attrs_jsonschema) - .compile_with_config(config, &protos, &proto_includes_paths)?; + .compile_protos_with_config(config, &protos, &proto_includes_paths)?; println!("[info ] Protos compiled successfully");