syntax = "proto3"; package zgc.committee.v1; import "cosmos_proto/cosmos.proto"; import "gogoproto/gogo.proto"; import "google/protobuf/any.proto"; import "google/protobuf/timestamp.proto"; option go_package = "github.com/0glabs/0g-chain/x/committee/v1/types"; message Params { uint64 committee_size = 1; } // GenesisState defines the committee module's genesis state. message GenesisState { option (gogoproto.goproto_getters) = false; Params params = 1 [(gogoproto.nullable) = false]; uint64 voting_start_height = 2; uint64 voting_period = 3; uint64 current_committee_id = 4 [(gogoproto.customname) = "CurrentCommitteeID"]; repeated Committee committees = 5 [(gogoproto.nullable) = false]; } message Committee { uint64 id = 1 [(gogoproto.customname) = "ID"]; uint64 voting_start_height = 2; uint64 start_height = 3; uint64 end_height = 4; repeated Vote votes = 5 [(gogoproto.nullable) = false]; repeated bytes members = 6 [ (cosmos_proto.scalar) = "cosmos.AddressBytes", (gogoproto.casttype) = "github.com/cosmos/cosmos-sdk/types.ValAddress" ]; } message Vote { option (gogoproto.goproto_getters) = false; uint64 committee_id = 1 [(gogoproto.customname) = "CommitteeID"]; bytes voter = 2 [ (cosmos_proto.scalar) = "cosmos.AddressBytes", (gogoproto.casttype) = "github.com/cosmos/cosmos-sdk/types.ValAddress" ]; repeated Ballot ballots = 3; } message Ballot { uint64 id = 1 [(gogoproto.customname) = "ID"]; bytes content = 2; }