syntax = "proto3";
package osmosis.superfluid.v1beta1;

import "gogoproto/gogo.proto";
import "amino/amino.proto";
import "cosmos_proto/cosmos.proto";
import "osmosis/superfluid/superfluid.proto";

option go_package = "github.com/osmosis-labs/osmosis/v13/x/superfluid/types";

// SetSuperfluidAssetsProposal is a gov Content type to update the superfluid
// assets
message SetSuperfluidAssetsProposal {
  option (gogoproto.equal) = true;
  option (gogoproto.goproto_getters) = false;
  option (gogoproto.goproto_stringer) = false;
  option (amino.name) = "osmosis/set-superfluid-assets-proposal";
  option (cosmos_proto.implements_interface) = "cosmos.gov.v1beta1.Content";

  string title = 1;
  string description = 2;
  repeated SuperfluidAsset assets = 3 [ (gogoproto.nullable) = false ];
}

// RemoveSuperfluidAssetsProposal is a gov Content type to remove the superfluid
// assets by denom
message RemoveSuperfluidAssetsProposal {
  option (gogoproto.equal) = true;
  option (gogoproto.goproto_getters) = false;
  option (gogoproto.goproto_stringer) = false;
  option (amino.name) = "osmosis/del-superfluid-assets-proposal";
  option (cosmos_proto.implements_interface) = "cosmos.gov.v1beta1.Content";

  string title = 1;
  string description = 2;
  repeated string superfluid_asset_denoms = 3;
}

// UpdateUnpoolWhiteListProposal is a gov Content type to update the
// allowed list of pool ids.
message UpdateUnpoolWhiteListProposal {
  option (gogoproto.equal) = true;
  option (gogoproto.goproto_getters) = false;
  option (gogoproto.goproto_stringer) = false;
  option (amino.name) = "osmosis/update-unpool-whitelist";
  option (cosmos_proto.implements_interface) = "cosmos.gov.v1beta1.Content";

  string title = 1;
  string description = 2;
  repeated uint64 ids = 3;
  bool is_overwrite = 4;
}
