syntax = "proto3";
package provenance.ibcratelimit.v1;

option go_package = "github.com/provenance-io/provenance/x/ibcratelimit";

option java_package        = "io.provenance.ibcratelimit.v1";
option java_multiple_files = true;

import "gogoproto/gogo.proto";
import "cosmos_proto/cosmos.proto";
import "cosmos/msg/v1/msg.proto";
import "provenance/ibcratelimit/v1/params.proto";

// Msg is the service for ibcratelimit module's tx endpoints.
service Msg {
  option (cosmos.msg.v1.service) = true;

  // GovUpdateParams is a governance proposal endpoint for updating the exchange module's params.
  // Deprecated: Use UpdateParams instead.
  rpc GovUpdateParams(MsgGovUpdateParamsRequest) returns (MsgGovUpdateParamsResponse) {
    option deprecated = true;
  }

  // UpdateParams is a governance proposal endpoint for updating the ibcratelimit module's params.
  rpc UpdateParams(MsgUpdateParamsRequest) returns (MsgUpdateParamsResponse);
}

// MsgGovUpdateParamsRequest is a request message for the GovUpdateParams endpoint.
// Deprecated: Use MsgUpdateParamsRequest instead.
message MsgGovUpdateParamsRequest {
  option (cosmos.msg.v1.signer) = "authority";
  option deprecated             = true;

  // authority should be the governance module account address.
  string authority = 1 [(cosmos_proto.scalar) = "cosmos.AddressString"];

  // params are the new param values to set.
  Params params = 2 [(gogoproto.nullable) = false];
}

// MsgGovUpdateParamsResponse is a response message for the GovUpdateParams endpoint.
// Deprecated: Use MsgUpdateParamsResponse instead.
message MsgGovUpdateParamsResponse {
  option deprecated = true;
}

// MsgUpdateParamsRequest is a request message for the UpdateParams endpoint.
message MsgUpdateParamsRequest {
  option (cosmos.msg.v1.signer) = "authority";

  // authority should be the governance module account address.
  string authority = 1 [(cosmos_proto.scalar) = "cosmos.AddressString"];

  // params are the new param values to set.
  Params params = 2 [(gogoproto.nullable) = false];
}

// MsgUpdateParamsResponse is a response message for the UpdateParams endpoint.
message MsgUpdateParamsResponse {}
