syntax = "proto3";
package osmosis.incentives;

import "gogoproto/gogo.proto";
import "google/protobuf/duration.proto";
import "osmosis/incentives/params.proto";
import "osmosis/incentives/gauge.proto";

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

// GenesisState defines the incentives module's various parameters when first
// initialized
message GenesisState {
  // params are all the parameters of the module
  Params params = 1 [ (gogoproto.nullable) = false ];
  // gauges are all gauges that should exist at genesis
  repeated Gauge gauges = 2 [ (gogoproto.nullable) = false ];
  // lockable_durations are all lockup durations that gauges can be locked for
  // in order to recieve incentives
  repeated google.protobuf.Duration lockable_durations = 3 [
    (gogoproto.nullable) = false,
    (gogoproto.stdduration) = true,
    (gogoproto.moretags) = "yaml:\"lockable_durations\""
  ];
  // last_gauge_id is what the gauge number will increment from when creating
  // the next gauge after genesis
  uint64 last_gauge_id = 4;
}
