syntax = "proto3";

package cosmos.gov.v1beta1;

import "gogoproto/gogo.proto";
import "cosmos/gov/v1beta1/gov.proto";

option go_package = "github.com/cosmos/cosmos-sdk/x/gov/types";

// GenesisState defines the gov module's genesis state.
message GenesisState {
  // starting_proposal_id is the ID of the starting proposal.
  uint64 starting_proposal_id = 1 [(gogoproto.moretags) = "yaml:\"starting_proposal_id\""];
  // deposits defines all the deposits present at genesis.
  repeated Deposit deposits = 2 [(gogoproto.castrepeated) = "Deposits", (gogoproto.nullable) = false];
  // votes defines all the votes present at genesis.
  repeated Vote votes = 3 [(gogoproto.castrepeated) = "Votes", (gogoproto.nullable) = false];
  // proposals defines all the proposals present at genesis.
  repeated Proposal proposals = 4 [(gogoproto.castrepeated) = "Proposals", (gogoproto.nullable) = false];
  // params defines all the paramaters of related to deposit.
  DepositParams deposit_params = 5 [(gogoproto.nullable) = false, (gogoproto.moretags) = "yaml:\"deposit_params\""];
  // params defines all the paramaters of related to voting.
  VotingParams voting_params = 6 [(gogoproto.nullable) = false, (gogoproto.moretags) = "yaml:\"voting_params\""];
  // params defines all the paramaters of related to tally.
  TallyParams tally_params = 7 [(gogoproto.nullable) = false, (gogoproto.moretags) = "yaml:\"tally_params\""];
}