types

package
v0.5.13 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Apr 24, 2026 License: MIT Imports: 18 Imported by: 0

Documentation

Index

Constants

View Source
const (
	EventTypeCreateVotingSession      = "create_voting_session"
	EventTypeDelegateVote             = "delegate_vote"
	EventTypeCastVote                 = "cast_vote"
	EventTypeRevealShare              = "reveal_share"
	EventTypeCommitmentTreeRoot       = "commitment_tree_root"
	EventTypeRoundStatusChange        = "round_status_change"
	EventTypeSubmitTally              = "submit_tally"
	EventTypeRegisterPallasKey        = "register_pallas_key"
	EventTypeRotatePallasKey          = "rotate_pallas_key"
	EventTypeContributeDKG            = "contribute_dkg"
	EventTypeAckExecutiveAuthorityKey = "ack_executive_authority_key"
	EventTypeCeremonyStatusChange     = "ceremony_status_change"
	EventTypeUpdateVoteManagers       = "update_vote_managers"
	EventTypeSubmitPartialDecryption  = "submit_partial_decryption"
	EventTypeAuthorizedSend           = "authorized_send"
	EventTypeTallyTimeout             = "tally_timeout"
)

Event types emitted by the vote module.

View Source
const (
	AttributeKeyRoundID          = "vote_round_id"
	AttributeKeyCreator          = "creator"
	AttributeKeyLeafIndex        = "leaf_index"
	AttributeKeyNullifiers       = "nullifier_count"
	AttributeKeyProposalID       = "proposal_id"
	AttributeKeyVoteDecision     = "vote_decision"
	AttributeKeyShareNullifier   = "share_nullifier"
	AttributeKeyTreeRoot         = "tree_root"
	AttributeKeyBlockHeight      = "block_height"
	AttributeKeyOldStatus        = "old_status"
	AttributeKeyNewStatus        = "new_status"
	AttributeKeyFinalizedEntries = "finalized_entries"
	AttributeKeyValidatorAddress = "validator_address"
	AttributeKeyCeremonyStatus   = "ceremony_status"
	AttributeKeyEAPK             = "ea_pk"
	AttributeKeyVoteManagers     = "vote_managers"
	AttributeKeyValidatorIndex   = "validator_index"
	AttributeKeyEntryCount       = "entry_count"
	AttributeKeySender           = "sender"
	AttributeKeyRecipient        = "recipient"
	AttributeKeyAmount           = "amount"
	AttributeKeyOldPallasPk      = "old_pallas_pk"
	AttributeKeyNewPallasPk      = "new_pallas_pk"
)

Event attribute keys.

View Source
const (
	// ModuleName defines the module name.
	ModuleName = "vote"

	// StoreKey defines the primary module store key.
	StoreKey = ModuleName

	// RouterKey defines the module's message routing key.
	RouterKey = ModuleName
)
View Source
const (
	SessionKeyNcRoot           = "nc_root"
	SessionKeyNullifierImtRoot = "nullifier_imt_root"
	SessionKeyBlockhash        = "snapshot_blockhash"
	SessionKeyProposalsHash    = "proposals_hash"
)

Session creation field names — used in the HTTP API response, CLI input parsing, and structured logging. Single source of truth for the JSON keys of hex-encoded fields in MsgCreateVotingSession.

View Source
const (
	Query_CommitmentTreeAtHeight_FullMethodName = "/svote.v1.Query/CommitmentTreeAtHeight"
	Query_LatestCommitmentTree_FullMethodName   = "/svote.v1.Query/LatestCommitmentTree"
	Query_VoteRound_FullMethodName              = "/svote.v1.Query/VoteRound"
	Query_ProposalTally_FullMethodName          = "/svote.v1.Query/ProposalTally"
	Query_TallyResults_FullMethodName           = "/svote.v1.Query/TallyResults"
	Query_CommitmentLeaves_FullMethodName       = "/svote.v1.Query/CommitmentLeaves"
	Query_ActiveRound_FullMethodName            = "/svote.v1.Query/ActiveRound"
	Query_CeremonyState_FullMethodName          = "/svote.v1.Query/CeremonyState"
	Query_VoteManagers_FullMethodName           = "/svote.v1.Query/VoteManagers"
	Query_VoteSummary_FullMethodName            = "/svote.v1.Query/VoteSummary"
	Query_ListRounds_FullMethodName             = "/svote.v1.Query/ListRounds"
	Query_PallasKeys_FullMethodName             = "/svote.v1.Query/PallasKeys"
)
View Source
const (
	Msg_CreateVotingSession_FullMethodName          = "/svote.v1.Msg/CreateVotingSession"
	Msg_DelegateVote_FullMethodName                 = "/svote.v1.Msg/DelegateVote"
	Msg_CastVote_FullMethodName                     = "/svote.v1.Msg/CastVote"
	Msg_RevealShare_FullMethodName                  = "/svote.v1.Msg/RevealShare"
	Msg_SubmitTally_FullMethodName                  = "/svote.v1.Msg/SubmitTally"
	Msg_SubmitPartialDecryption_FullMethodName      = "/svote.v1.Msg/SubmitPartialDecryption"
	Msg_RegisterPallasKey_FullMethodName            = "/svote.v1.Msg/RegisterPallasKey"
	Msg_RotatePallasKey_FullMethodName              = "/svote.v1.Msg/RotatePallasKey"
	Msg_ContributeDKG_FullMethodName                = "/svote.v1.Msg/ContributeDKG"
	Msg_AckExecutiveAuthorityKey_FullMethodName     = "/svote.v1.Msg/AckExecutiveAuthorityKey"
	Msg_CreateValidatorWithPallasKey_FullMethodName = "/svote.v1.Msg/CreateValidatorWithPallasKey"
	Msg_UpdateVoteManagers_FullMethodName           = "/svote.v1.Msg/UpdateVoteManagers"
	Msg_AuthorizedSend_FullMethodName               = "/svote.v1.Msg/AuthorizedSend"
)
View Source
const AckDigestDomain = "ack"

AckDigestDomain is the domain prefix for the ceremony ack commitment digest: SHA256(AckDigestDomain || ea_pk || validator_address).

This is NOT a cryptographic signature. Authentication of the ack message relies on ValidateProposerIsCreator (which verifies the message creator is the current block proposer). The digest merely binds the acknowledgement to a specific (ea_pk, validator_address) pair as a commitment.

View Source
const CastVoteSighashDomain = "SVOTE_CAST_VOTE_SIGHASH_V0"

CastVoteSighashDomain is the domain string for the canonical cast-vote sighash. Must match the e2e-tests encoding.

View Source
const DefaultContributionTimeout uint64 = 1800

DefaultContributionTimeout is the REGISTERING phase timeout in seconds (30 minutes). If not all validators have contributed by this deadline, EndBlocker clears contributions and restarts REGISTERING with a fresh timeout.

View Source
const DefaultDealTimeout uint64 = 1800

DefaultDealTimeout is the ceremony deal/ack phase timeout in seconds (30 minutes).

View Source
const DefaultTallyTimeout uint64 = 21600

DefaultTallyTimeout is the tally phase timeout in seconds (6 hours). If a round remains in TALLYING longer than this, EndBlock finalizes it with tally_timed_out=true and empty results to prevent permanent liveness loss.

View Source
const MaxCommitmentLeafRange uint64 = 1000

MaxCommitmentLeafRange caps the [fromHeight, toHeight] span accepted by the CommitmentLeaves gRPC query to prevent unbounded memory allocation.

View Source
const MaxProofSize = 8192

MaxProofSize is the maximum allowed byte length for a Halo2 ZKP. Measured proof sizes (CircuitCost / FFI round-trip):

Delegation  (ZKP #1, K=14): 5,216 bytes
Vote Commit (ZKP #2, K=13): 5,216 bytes
Share Reveal(ZKP #3, K=11): 4,000 bytes

The proof generation FFI uses an 8192-byte output buffer. The constant provides ~57% headroom above the largest circuit. Enforced in ValidateBasic to reject oversized payloads before they reach the FFI.

View Source
const MaxProposals = 15

MaxProposals is the maximum number of proposals per voting round. The circuit's proposal_authority bitmask is 16 bits with bit 0 reserved as a sentinel (rejected by the non-zero gate), leaving bits 1-15 usable.

View Source
const MaxTreePosition = (1 << 32) - 1

MaxTreePosition is the largest valid commitment tree leaf index. The tree uses zero-based uint32 leaf addressing (depth-24 Poseidon Merkle tree), so valid positions are 0..2^32-1.

View Source
const MaxVoteOptions = 8

MaxVoteOptions is the maximum number of options per proposal (0-indexed). Circuit-constrained by the vote decision encoding.

View Source
const MinProposalID = 1

MinProposalID is the minimum valid proposal ID (1-indexed). Bit 0 of the circuit's proposal_authority bitmask is reserved as a sentinel (rejected by the non-zero gate), so valid IDs start at 1.

View Source
const RoundIDLen = 32

RoundIDLen is the fixed byte-length of a VoteRoundId (SHA-256 digest).

Variables

View Source
var (
	ErrDuplicateNullifier  = errors.Register(ModuleName, 2, "nullifier already spent")
	ErrRoundNotFound       = errors.Register(ModuleName, 3, "vote round not found")
	ErrRoundNotActive      = errors.Register(ModuleName, 4, "vote round is not active")
	ErrInvalidProof        = errors.Register(ModuleName, 5, "invalid zero-knowledge proof")
	ErrInvalidSignature    = errors.Register(ModuleName, 6, "invalid RedPallas signature")
	ErrInvalidAnchorHeight = errors.Register(ModuleName, 7, "invalid commitment tree anchor height")
	ErrInvalidRoundID      = errors.Register(ModuleName, 8, "invalid vote round ID")
	ErrInvalidField        = errors.Register(ModuleName, 9, "invalid message field")
	ErrSighashMismatch     = errors.Register(ModuleName, 15, "sighash does not match message")
	ErrRoundAlreadyExists  = errors.Register(ModuleName, 10, "vote round already exists")
	ErrCommitmentTreeFull  = errors.Register(ModuleName, 11, "commitment tree is full")
	ErrRoundNotTallying    = errors.Register(ModuleName, 12, "vote round is not in tallying state")
	ErrInvalidProposalID   = errors.Register(ModuleName, 13, "invalid proposal ID")
	ErrTallyMismatch       = errors.Register(ModuleName, 14, "tally entry does not match on-chain accumulator")

	// EA key ceremony errors.
	ErrCeremonyWrongStatus    = errors.Register(ModuleName, 21, "operation invalid for current ceremony status")
	ErrDuplicateRegistration  = errors.Register(ModuleName, 22, "validator already registered pallas key")
	ErrDuplicatePallasKey     = errors.Register(ModuleName, 34, "pallas key already registered by another validator")
	ErrInvalidPallasPoint     = errors.Register(ModuleName, 23, "invalid pallas point")
	ErrPayloadMismatch        = errors.Register(ModuleName, 24, "dealer payload count does not match validator count")
	ErrDuplicateAck           = errors.Register(ModuleName, 25, "validator already acknowledged")
	ErrDuplicateContribution  = errors.Register(ModuleName, 33, "validator already contributed to DKG")
	ErrNotRegisteredValidator = errors.Register(ModuleName, 26, "validator not in ceremony validator list")
	ErrCeremonySessionActive  = errors.Register(ModuleName, 27, "ceremony session is in progress")
	ErrInvalidThreshold       = errors.Register(ModuleName, 28, "invalid threshold parameters")
	ErrInsufficientValidators = errors.Register(ModuleName, 29, "insufficient eligible validators")

	// Pallas key rotation errors.
	ErrCeremonyInProgress = errors.Register(ModuleName, 35, "cannot rotate key while participating in an active ceremony")
	ErrNoPallasKey        = errors.Register(ModuleName, 36, "validator has no registered pallas key")
	ErrSameKey            = errors.Register(ModuleName, 37, "new pallas key is identical to the current key")

	// Vote-manager authorization errors.
	ErrNotAuthorized        = errors.Register(ModuleName, 30, "sender is not authorized")
	ErrNoVoteManagers       = errors.Register(ModuleName, 31, "no vote-manager set configured")
	ErrEmptyVoteManagerSet  = errors.Register(ModuleName, 38, "vote-manager set must be non-empty")
	ErrDuplicateVoteManager = errors.Register(ModuleName, 39, "vote-manager address appears more than once")

	// Authorized send errors.
	ErrUnauthorizedSend = errors.Register(ModuleName, 32, "sender not authorized to send to recipient")
)

x/vote module sentinel errors.

View Source
var (
	// NullifierPrefix stores spent nullifiers, scoped by type and round:
	//   0x01 || type_byte || round_id (32 bytes) || nullifier_bytes -> []byte{1}
	NullifierPrefix = []byte{0x01}

	// CommitmentLeafPrefix stores append-only commitment tree entries: 0x02 || big-endian uint64 index -> commitment_bytes
	CommitmentLeafPrefix = []byte{0x02}

	// CommitmentRootByHeightPrefix stores commitment tree roots indexed by block height: 0x03 || big-endian uint64 height -> root_bytes
	CommitmentRootByHeightPrefix = []byte{0x03}

	// VoteRoundPrefix stores vote round data: 0x04 || round_id -> VoteRound (protobuf)
	VoteRoundPrefix = []byte{0x04}

	// TallyPrefix stores vote tally accumulators: 0x05 || round_id || big-endian uint32 proposal_id || big-endian uint32 decision -> big-endian uint64 amount
	TallyPrefix = []byte{0x05}

	// TreeStateKey stores the current commitment tree state (next_index, etc.): single key
	TreeStateKey = []byte{0x06}

	// TallyResultPrefix stores finalized tally results: 0x07 || round_id || big-endian uint32 proposal_id || big-endian uint32 decision -> TallyResult (protobuf)
	TallyResultPrefix = []byte{0x07}

	// BlockLeafIndexPrefix maps block heights to the range of commitment leaves
	// appended during that block: 0x08 || big-endian uint64 height -> (start_index uint64 BE, count uint64 BE)
	// Written by EndBlocker when tree root changes. Used by the CommitmentLeaves query.
	BlockLeafIndexPrefix = []byte{0x08}

	// VoteManagerSetKey stores the vote-manager set under a single KV entry: VoteManagerSet (protobuf).
	// Any address in the set may authorize vote-manager-gated operations (any-of-N semantics).
	VoteManagerSetKey = []byte{0x0A}

	// ShareCountPrefix stores share reveal counts per (round, proposal, decision):
	//   0x0B || round_id || big-endian uint32 proposal_id || big-endian uint32 decision -> uint64 BE
	ShareCountPrefix = []byte{0x0B}

	// PallasKeyPrefix stores the global Pallas PK registry (decoupled from ceremony):
	//   0x0C || valoper_address_bytes -> ValidatorPallasKey (protobuf)
	PallasKeyPrefix = []byte{0x0C}

	// CeremonyStateKey stores the singleton ceremony state: single key -> CeremonyState (protobuf)
	CeremonyStateKey = []byte{0x0E}

	// ShardPrefix stores vote commitment tree shards persisted by EndBlocker:
	//   0x0F || uint64 BE shard_index -> shard blob (WorkingSetShardStore format)
	ShardPrefix = []byte{0x0F}

	// ShardCapKey stores the vote commitment tree cap (nodes above shard level):
	//   single key -> cap blob (WorkingSetShardStore format)
	ShardCapKey = []byte{0x10}

	// ShardCheckpointPrefix stores per-block tree checkpoints:
	//   0x11 || uint32 BE checkpoint_id -> checkpoint blob (WorkingSetShardStore format)
	ShardCheckpointPrefix = []byte{0x11}

	// PartialDecryptionPrefix stores per-validator partial decryptions during the
	// TALLYING phase of a threshold-mode voting round:
	//   0x12 || round_id (32 bytes) || uint32 BE validator_index || uint32 BE proposal_id || uint32 BE vote_decision
	//   -> PartialDecryptionEntry (protobuf)
	//
	// Prefix scans:
	//   0x12 || round_id                                   — all partials for a round
	//   0x12 || round_id || uint32 BE validator_index      — all entries from one validator
	PartialDecryptionPrefix = []byte{0x12}

	// MinCeremonyValidatorsKey stores the minimum number of eligible validators
	// required to create a voting session: single key -> uint32 big-endian.
	MinCeremonyValidatorsKey = []byte{0x13}

	// PallasKeyReverseLookupPrefix is a reverse index from compressed Pallas PK
	// bytes to the validator address that registered it. Enforces cross-validator
	// PK uniqueness — two validators cannot register the same public key.
	//   0x15 || pk_bytes -> valoper_address_bytes
	PallasKeyReverseLookupPrefix = []byte{0x15}

	// RoundTreePrefix scopes all commitment-tree KV entries to a specific
	// voting round. Per-round keys have the form:
	//   0x14 || round_id (32 bytes) || <inner key>
	// where <inner key> is one of the tree-internal prefixes (0x02, 0x03,
	// 0x06, 0x08). Shard/cap/checkpoint keys (0x0F, 0x10, 0x11) are scoped
	// transparently by the KvStoreProxy prefix on the Rust side.
	RoundTreePrefix = []byte{0x14}
)

KV store key prefixes for the vote module.

View Source
var (
	SessionStatus_name = map[int32]string{
		0: "SESSION_STATUS_UNSPECIFIED",
		1: "SESSION_STATUS_ACTIVE",
		2: "SESSION_STATUS_TALLYING",
		3: "SESSION_STATUS_FINALIZED",
		4: "SESSION_STATUS_PENDING",
	}
	SessionStatus_value = map[string]int32{
		"SESSION_STATUS_UNSPECIFIED": 0,
		"SESSION_STATUS_ACTIVE":      1,
		"SESSION_STATUS_TALLYING":    2,
		"SESSION_STATUS_FINALIZED":   3,
		"SESSION_STATUS_PENDING":     4,
	}
)

Enum value maps for SessionStatus.

View Source
var (
	CeremonyStatus_name = map[int32]string{
		0: "CEREMONY_STATUS_UNSPECIFIED",
		1: "CEREMONY_STATUS_REGISTERING",
		2: "CEREMONY_STATUS_DEALT",
		3: "CEREMONY_STATUS_CONFIRMED",
	}
	CeremonyStatus_value = map[string]int32{
		"CEREMONY_STATUS_UNSPECIFIED": 0,
		"CEREMONY_STATUS_REGISTERING": 1,
		"CEREMONY_STATUS_DEALT":       2,
		"CEREMONY_STATUS_CONFIRMED":   3,
	}
)

Enum value maps for CeremonyStatus.

View Source
var ErrInvalidRoundIDLen = fmt.Errorf("vote/types: roundID must be exactly %d bytes", RoundIDLen)

ErrInvalidRoundIDLen is returned when a roundID is not exactly RoundIDLen bytes.

View Source
var File_svote_v1_query_proto protoreflect.FileDescriptor
View Source
var File_svote_v1_tx_proto protoreflect.FileDescriptor
View Source
var File_svote_v1_types_proto protoreflect.FileDescriptor
View Source
var Msg_ServiceDesc = grpc.ServiceDesc{
	ServiceName: "svote.v1.Msg",
	HandlerType: (*MsgServer)(nil),
	Methods: []grpc.MethodDesc{
		{
			MethodName: "CreateVotingSession",
			Handler:    _Msg_CreateVotingSession_Handler,
		},
		{
			MethodName: "DelegateVote",
			Handler:    _Msg_DelegateVote_Handler,
		},
		{
			MethodName: "CastVote",
			Handler:    _Msg_CastVote_Handler,
		},
		{
			MethodName: "RevealShare",
			Handler:    _Msg_RevealShare_Handler,
		},
		{
			MethodName: "SubmitTally",
			Handler:    _Msg_SubmitTally_Handler,
		},
		{
			MethodName: "SubmitPartialDecryption",
			Handler:    _Msg_SubmitPartialDecryption_Handler,
		},
		{
			MethodName: "RegisterPallasKey",
			Handler:    _Msg_RegisterPallasKey_Handler,
		},
		{
			MethodName: "RotatePallasKey",
			Handler:    _Msg_RotatePallasKey_Handler,
		},
		{
			MethodName: "ContributeDKG",
			Handler:    _Msg_ContributeDKG_Handler,
		},
		{
			MethodName: "AckExecutiveAuthorityKey",
			Handler:    _Msg_AckExecutiveAuthorityKey_Handler,
		},
		{
			MethodName: "CreateValidatorWithPallasKey",
			Handler:    _Msg_CreateValidatorWithPallasKey_Handler,
		},
		{
			MethodName: "UpdateVoteManagers",
			Handler:    _Msg_UpdateVoteManagers_Handler,
		},
		{
			MethodName: "AuthorizedSend",
			Handler:    _Msg_AuthorizedSend_Handler,
		},
	},
	Streams:  []grpc.StreamDesc{},
	Metadata: "svote/v1/tx.proto",
}

Msg_ServiceDesc is the grpc.ServiceDesc for Msg service. It's only intended for direct use with grpc.RegisterService, and not to be introspected or modified (even as a copy)

View Source
var Query_ServiceDesc = grpc.ServiceDesc{
	ServiceName: "svote.v1.Query",
	HandlerType: (*QueryServer)(nil),
	Methods: []grpc.MethodDesc{
		{
			MethodName: "CommitmentTreeAtHeight",
			Handler:    _Query_CommitmentTreeAtHeight_Handler,
		},
		{
			MethodName: "LatestCommitmentTree",
			Handler:    _Query_LatestCommitmentTree_Handler,
		},
		{
			MethodName: "VoteRound",
			Handler:    _Query_VoteRound_Handler,
		},
		{
			MethodName: "ProposalTally",
			Handler:    _Query_ProposalTally_Handler,
		},
		{
			MethodName: "TallyResults",
			Handler:    _Query_TallyResults_Handler,
		},
		{
			MethodName: "CommitmentLeaves",
			Handler:    _Query_CommitmentLeaves_Handler,
		},
		{
			MethodName: "ActiveRound",
			Handler:    _Query_ActiveRound_Handler,
		},
		{
			MethodName: "CeremonyState",
			Handler:    _Query_CeremonyState_Handler,
		},
		{
			MethodName: "VoteManagers",
			Handler:    _Query_VoteManagers_Handler,
		},
		{
			MethodName: "VoteSummary",
			Handler:    _Query_VoteSummary_Handler,
		},
		{
			MethodName: "ListRounds",
			Handler:    _Query_ListRounds_Handler,
		},
		{
			MethodName: "PallasKeys",
			Handler:    _Query_PallasKeys_Handler,
		},
	},
	Streams:  []grpc.StreamDesc{},
	Metadata: "svote/v1/query.proto",
}

Query_ServiceDesc is the grpc.ServiceDesc for Query service. It's only intended for direct use with grpc.RegisterService, and not to be introspected or modified (even as a copy)

Functions

func BlockLeafIndexKey

func BlockLeafIndexKey(roundID []byte, height uint64) []byte

BlockLeafIndexKey returns the store key for a block-to-leaf-index mapping scoped to a round. Format: 0x14 || round_id || 0x08 || big-endian uint64 height

func BlockLeafIndexPrefixForRound added in v0.3.0

func BlockLeafIndexPrefixForRound(roundID []byte) []byte

BlockLeafIndexPrefixForRound returns the prefix for iterating all block-leaf index entries in a round. Format: 0x14 || round_id || 0x08

func CommitmentLeafKey

func CommitmentLeafKey(roundID []byte, index uint64) []byte

CommitmentLeafKey returns the store key for a commitment tree leaf scoped to a round. Format: 0x14 || round_id || 0x02 || big-endian uint64 index

func CommitmentLeafPrefixForRound added in v0.3.0

func CommitmentLeafPrefixForRound(roundID []byte) []byte

CommitmentLeafPrefixForRound returns the prefix for iterating all leaves in a round. Format: 0x14 || round_id || 0x02

func CommitmentRootKey

func CommitmentRootKey(roundID []byte, height uint64) []byte

CommitmentRootKey returns the store key for a commitment tree root scoped to a round. Format: 0x14 || round_id || 0x03 || big-endian uint64 height

func CommitmentRootPrefixForRound added in v0.3.0

func CommitmentRootPrefixForRound(roundID []byte) []byte

CommitmentRootPrefixForRound returns the prefix for iterating all roots in a round. Format: 0x14 || round_id || 0x03

func ComputeCastVoteSighash

func ComputeCastVoteSighash(msg *MsgCastVote) []byte

ComputeCastVoteSighash returns the 32-byte Blake2b-256 hash of the canonical signable payload for MsgCastVote. The chain computes this on-chain and uses it as the message for RedPallas signature verification.

Canonical encoding (domain || fixed-order fields):

  • domain: CastVoteSighashDomain (no trailing null)
  • vote_round_id: 32 bytes (pad with zeros if shorter)
  • r_vpk: 32 bytes (compressed Pallas point)
  • van_nullifier: 32 bytes
  • vote_authority_note_new: 32 bytes
  • vote_commitment: 32 bytes
  • proposal_id: 4 bytes LE, padded to 32 bytes
  • vote_comm_tree_anchor_height: 8 bytes LE, padded to 32 bytes

func NullifierKey

func NullifierKey(nfType NullifierType, roundID, nullifier []byte) ([]byte, error)

NullifierKey returns the store key for a nullifier scoped by type and round. Format: 0x01 || type_byte || round_id (32 B) || nullifier_bytes

func NullifierPrefixForRound

func NullifierPrefixForRound(nfType NullifierType, roundID []byte) ([]byte, error)

NullifierPrefixForRound returns the KV prefix for all nullifiers of a given type within a specific round. Useful for prefix iteration (e.g., genesis export). Format: 0x01 || type_byte || round_id (32 B)

func PallasKeyKey

func PallasKeyKey(valoperAddr string) []byte

PallasKeyKey returns the store key for a validator's Pallas PK in the global registry. Format: 0x0C || valoper_address_bytes

func PallasKeyReverseLookupKey added in v0.4.0

func PallasKeyReverseLookupKey(pk []byte) []byte

PallasKeyReverseLookupKey returns the store key for the PK -> validator reverse index. Format: 0x15 || pk_bytes

func PartialDecryptionKey

func PartialDecryptionKey(roundID []byte, validatorIndex, proposalID, decision uint32) ([]byte, error)

PartialDecryptionKey returns the store key for one partial decryption entry. Format: 0x12 || round_id (32 B) || uint32 BE validator_index || uint32 BE proposal_id || uint32 BE vote_decision

func PartialDecryptionPrefixForRound

func PartialDecryptionPrefixForRound(roundID []byte) ([]byte, error)

PartialDecryptionPrefixForRound returns the KV prefix for all partial decryptions stored for a given round. Used to iterate all validators' entries for a round. Format: 0x12 || round_id (32 B)

func PartialDecryptionPrefixForValidator

func PartialDecryptionPrefixForValidator(roundID []byte, validatorIndex uint32) ([]byte, error)

PartialDecryptionPrefixForValidator returns the KV prefix for all partial decryptions from a specific validator within a round. Used to check whether a validator has already submitted and to retrieve all their entries. Format: 0x12 || round_id (32 B) || uint32 BE validator_index

func PrefixEndBytes

func PrefixEndBytes(prefix []byte) []byte

PrefixEndBytes returns the exclusive end key for prefix iteration. It increments the last byte of the prefix, handling overflow by truncating trailing 0xFF bytes.

func RegisterInterfaces

func RegisterInterfaces(registry codectypes.InterfaceRegistry)

RegisterInterfaces registers the vote module's message types with the InterfaceRegistry. This is required for the MsgServiceRouter to accept vote messages during RegisterService.

We only call RegisterImplementations (not msgservice.RegisterMsgServiceDesc) because our protobuf types are generated with protoc-gen-go v2, which uses a different file descriptor registry than what RegisterMsgServiceDesc expects.

func RegisterMsgServer

func RegisterMsgServer(s grpc.ServiceRegistrar, srv MsgServer)

func RegisterQueryServer

func RegisterQueryServer(s grpc.ServiceRegistrar, srv QueryServer)

func RoundTreeKey added in v0.3.0

func RoundTreeKey(roundID []byte) []byte

RoundTreeKey returns the per-round tree key prefix: 0x14 || round_id. All commitment-tree KV entries for a round live under this prefix.

func RoundTreeStateKey added in v0.3.0

func RoundTreeStateKey(roundID []byte) []byte

RoundTreeStateKey returns the store key for per-round tree state. Format: 0x14 || round_id || 0x06

func ShardCheckpointIDFromKey

func ShardCheckpointIDFromKey(key []byte) uint32

ShardCheckpointIDFromKey extracts the checkpoint ID from a ShardCheckpointKey.

func ShardCheckpointKey

func ShardCheckpointKey(id uint32) []byte

ShardCheckpointKey returns the store key for a vote commitment tree checkpoint. Format: 0x11 || uint32 BE checkpoint_id

func ShardIndexFromKey

func ShardIndexFromKey(key []byte) uint64

ShardIndexFromKey extracts the shard index from a ShardKey.

func ShardKey

func ShardKey(index uint64) []byte

ShardKey returns the store key for a vote commitment tree shard. Format: 0x0F || uint64 BE shard_index

func ShareCountKey

func ShareCountKey(roundID []byte, proposalID uint32, decision uint32) ([]byte, error)

ShareCountKey returns the store key for a share count entry. Format: 0x0B || round_id (32 B) || big-endian uint32 proposal_id || big-endian uint32 decision

func TallyKey

func TallyKey(roundID []byte, proposalID uint32, decision uint32) ([]byte, error)

TallyKey returns the store key for a tally accumulator entry.

func TallyPrefixForProposal

func TallyPrefixForProposal(roundID []byte, proposalID uint32) ([]byte, error)

TallyPrefixForProposal returns the KV prefix for all tally entries of a given (round_id, proposal_id) pair. Used for prefix iteration to collect all vote decisions for a proposal.

func TallyResultKey

func TallyResultKey(roundID []byte, proposalID uint32, decision uint32) ([]byte, error)

TallyResultKey returns the store key for a finalized tally result. Format: 0x07 || round_id (32 B) || big-endian uint32 proposal_id || big-endian uint32 decision

func TallyResultPrefixForRound

func TallyResultPrefixForRound(roundID []byte) ([]byte, error)

TallyResultPrefixForRound returns the KV prefix for all tally results of a given round. Used for prefix iteration to collect all finalized results. Format: 0x07 || round_id (32 B)

func ValidateAndNormalizeVoteManagerSet added in v0.5.8

func ValidateAndNormalizeVoteManagerSet(addrs []string) ([]string, error)

ValidateAndNormalizeVoteManagerSet parses each address through bech32, rejects duplicates (on the canonical form, so mixed-case variants don't slip through), and returns the canonical list. The input list is not mutated. Returns ErrEmptyVoteManagerSet when the list is empty.

Shared by ValidateGenesisState and the MsgUpdateVoteManagers handler so both paths apply the same admissibility rules.

func ValidateGenesisState

func ValidateGenesisState(gs *GenesisState) error

ValidateGenesisState performs structural validation of the vote module genesis state.

func ValidateRoundID

func ValidateRoundID(id []byte) error

ValidateRoundID returns an error if id is not exactly RoundIDLen bytes.

func VoteRoundKey

func VoteRoundKey(roundID []byte) ([]byte, error)

VoteRoundKey returns the store key for a vote round.

Types

type AckEntry

type AckEntry struct {
	ValidatorAddress string `protobuf:"bytes,1,opt,name=validator_address,json=validatorAddress,proto3" json:"validator_address,omitempty"`
	AckSignature     []byte `protobuf:"bytes,2,opt,name=ack_signature,json=ackSignature,proto3" json:"ack_signature,omitempty"` // Commitment digest: SHA256("ack" || ea_pk || validator_address). Not a cryptographic signature; field name kept for wire compatibility.
	AckHeight        uint64 `protobuf:"varint,3,opt,name=ack_height,json=ackHeight,proto3" json:"ack_height,omitempty"`
	// contains filtered or unexported fields
}

AckEntry records a validator's acknowledgement of receiving their share.

func (*AckEntry) Descriptor deprecated

func (*AckEntry) Descriptor() ([]byte, []int)

Deprecated: Use AckEntry.ProtoReflect.Descriptor instead.

func (*AckEntry) GetAckHeight

func (x *AckEntry) GetAckHeight() uint64

func (*AckEntry) GetAckSignature

func (x *AckEntry) GetAckSignature() []byte

func (*AckEntry) GetValidatorAddress

func (x *AckEntry) GetValidatorAddress() string

func (*AckEntry) ProtoMessage

func (*AckEntry) ProtoMessage()

func (*AckEntry) ProtoReflect

func (x *AckEntry) ProtoReflect() protoreflect.Message

func (*AckEntry) Reset

func (x *AckEntry) Reset()

func (*AckEntry) String

func (x *AckEntry) String() string

type BlockCommitments

type BlockCommitments struct {
	Height     uint64   `protobuf:"varint,1,opt,name=height,proto3" json:"height,omitempty"`                           // Block height
	StartIndex uint64   `protobuf:"varint,2,opt,name=start_index,json=startIndex,proto3" json:"start_index,omitempty"` // Index of the first leaf in this block
	Leaves     [][]byte `protobuf:"bytes,3,rep,name=leaves,proto3" json:"leaves,omitempty"`                            // Commitment leaves (each 32 bytes, Pallas Fp LE)
	// contains filtered or unexported fields
}

BlockCommitments holds the commitment leaves appended during a single block. Used by the CommitmentLeaves query to serve tree data to remote clients implementing the TreeSyncApi trait.

func (*BlockCommitments) Descriptor deprecated

func (*BlockCommitments) Descriptor() ([]byte, []int)

Deprecated: Use BlockCommitments.ProtoReflect.Descriptor instead.

func (*BlockCommitments) GetHeight

func (x *BlockCommitments) GetHeight() uint64

func (*BlockCommitments) GetLeaves

func (x *BlockCommitments) GetLeaves() [][]byte

func (*BlockCommitments) GetStartIndex

func (x *BlockCommitments) GetStartIndex() uint64

func (*BlockCommitments) ProtoMessage

func (*BlockCommitments) ProtoMessage()

func (*BlockCommitments) ProtoReflect

func (x *BlockCommitments) ProtoReflect() protoreflect.Message

func (*BlockCommitments) Reset

func (x *BlockCommitments) Reset()

func (*BlockCommitments) String

func (x *BlockCommitments) String() string

type CeremonyState

type CeremonyState struct {
	Status             CeremonyStatus        `protobuf:"varint,1,opt,name=status,proto3,enum=svote.v1.CeremonyStatus" json:"status,omitempty"`
	EaPk               []byte                `protobuf:"bytes,2,opt,name=ea_pk,json=eaPk,proto3" json:"ea_pk,omitempty"`                                            // Set when DKG completes
	Validators         []*ValidatorPallasKey `protobuf:"bytes,3,rep,name=validators,proto3" json:"validators,omitempty"`                                            // All registered pk_i
	Acks               []*AckEntry           `protobuf:"bytes,5,rep,name=acks,proto3" json:"acks,omitempty"`                                                        // Per-validator ack status
	PhaseStart         uint64                `protobuf:"varint,7,opt,name=phase_start,json=phaseStart,proto3" json:"phase_start,omitempty"`                         // Unix seconds when current phase started
	PhaseTimeout       uint64                `protobuf:"varint,8,opt,name=phase_timeout,json=phaseTimeout,proto3" json:"phase_timeout,omitempty"`                   // Timeout in seconds for current phase
	Threshold          uint32                `protobuf:"varint,9,opt,name=threshold,proto3" json:"threshold,omitempty"`                                             // Minimum shares for reconstruction (always >= 1)
	FeldmanCommitments [][]byte              `protobuf:"bytes,10,rep,name=feldman_commitments,json=feldmanCommitments,proto3" json:"feldman_commitments,omitempty"` // C_j = a_j*G, t compressed Pallas points (32 bytes each)
	// contains filtered or unexported fields
}

CeremonyState tracks the singleton EA key ceremony lifecycle.

func (*CeremonyState) Descriptor deprecated

func (*CeremonyState) Descriptor() ([]byte, []int)

Deprecated: Use CeremonyState.ProtoReflect.Descriptor instead.

func (*CeremonyState) GetAcks

func (x *CeremonyState) GetAcks() []*AckEntry

func (*CeremonyState) GetEaPk

func (x *CeremonyState) GetEaPk() []byte

func (*CeremonyState) GetFeldmanCommitments added in v0.4.0

func (x *CeremonyState) GetFeldmanCommitments() [][]byte

func (*CeremonyState) GetPhaseStart

func (x *CeremonyState) GetPhaseStart() uint64

func (*CeremonyState) GetPhaseTimeout

func (x *CeremonyState) GetPhaseTimeout() uint64

func (*CeremonyState) GetStatus

func (x *CeremonyState) GetStatus() CeremonyStatus

func (*CeremonyState) GetThreshold

func (x *CeremonyState) GetThreshold() uint32

func (*CeremonyState) GetValidators

func (x *CeremonyState) GetValidators() []*ValidatorPallasKey

func (*CeremonyState) ProtoMessage

func (*CeremonyState) ProtoMessage()

func (*CeremonyState) ProtoReflect

func (x *CeremonyState) ProtoReflect() protoreflect.Message

func (*CeremonyState) Reset

func (x *CeremonyState) Reset()

func (*CeremonyState) String

func (x *CeremonyState) String() string

type CeremonyStatus

type CeremonyStatus int32

CeremonyStatus represents the lifecycle state of the EA key ceremony.

const (
	CeremonyStatus_CEREMONY_STATUS_UNSPECIFIED CeremonyStatus = 0
	CeremonyStatus_CEREMONY_STATUS_REGISTERING CeremonyStatus = 1 // Accepting validator pk_i registrations (no timeout)
	CeremonyStatus_CEREMONY_STATUS_DEALT       CeremonyStatus = 2 // DealerTx landed, awaiting acks
	CeremonyStatus_CEREMONY_STATUS_CONFIRMED   CeremonyStatus = 3 // All acked (fast path) or >=1/2 acked at timeout, ea_pk ready
)

func (CeremonyStatus) Descriptor

func (CeremonyStatus) Enum

func (x CeremonyStatus) Enum() *CeremonyStatus

func (CeremonyStatus) EnumDescriptor deprecated

func (CeremonyStatus) EnumDescriptor() ([]byte, []int)

Deprecated: Use CeremonyStatus.Descriptor instead.

func (CeremonyStatus) Number

func (CeremonyStatus) String

func (x CeremonyStatus) String() string

func (CeremonyStatus) Type

type CommitmentLeaf

type CommitmentLeaf struct {
	Index uint64 `protobuf:"varint,1,opt,name=index,proto3" json:"index,omitempty"`
	Value []byte `protobuf:"bytes,2,opt,name=value,proto3" json:"value,omitempty"`
	// contains filtered or unexported fields
}

CommitmentLeaf is an entry in the append-only commitment tree.

func (*CommitmentLeaf) Descriptor deprecated

func (*CommitmentLeaf) Descriptor() ([]byte, []int)

Deprecated: Use CommitmentLeaf.ProtoReflect.Descriptor instead.

func (*CommitmentLeaf) GetIndex

func (x *CommitmentLeaf) GetIndex() uint64

func (*CommitmentLeaf) GetValue

func (x *CommitmentLeaf) GetValue() []byte

func (*CommitmentLeaf) ProtoMessage

func (*CommitmentLeaf) ProtoMessage()

func (*CommitmentLeaf) ProtoReflect

func (x *CommitmentLeaf) ProtoReflect() protoreflect.Message

func (*CommitmentLeaf) Reset

func (x *CommitmentLeaf) Reset()

func (*CommitmentLeaf) String

func (x *CommitmentLeaf) String() string

type CommitmentTreeState

type CommitmentTreeState struct {
	NextIndex       uint64 `protobuf:"varint,1,opt,name=next_index,json=nextIndex,proto3" json:"next_index,omitempty"`                       // Next leaf index to write
	Root            []byte `protobuf:"bytes,2,opt,name=root,proto3" json:"root,omitempty"`                                                   // Current Merkle root (empty until EndBlocker computes it)
	Height          uint64 `protobuf:"varint,3,opt,name=height,proto3" json:"height,omitempty"`                                              // Block height at which this root was last computed
	NextIndexAtRoot uint64 `protobuf:"varint,4,opt,name=next_index_at_root,json=nextIndexAtRoot,proto3" json:"next_index_at_root,omitempty"` // NextIndex at the time the root was last stored (used to compute per-block leaf ranges)
	// contains filtered or unexported fields
}

CommitmentTreeState holds the current state of the append-only commitment tree.

func (*CommitmentTreeState) Descriptor deprecated

func (*CommitmentTreeState) Descriptor() ([]byte, []int)

Deprecated: Use CommitmentTreeState.ProtoReflect.Descriptor instead.

func (*CommitmentTreeState) GetHeight

func (x *CommitmentTreeState) GetHeight() uint64

func (*CommitmentTreeState) GetNextIndex

func (x *CommitmentTreeState) GetNextIndex() uint64

func (*CommitmentTreeState) GetNextIndexAtRoot

func (x *CommitmentTreeState) GetNextIndexAtRoot() uint64

func (*CommitmentTreeState) GetRoot

func (x *CommitmentTreeState) GetRoot() []byte

func (*CommitmentTreeState) ProtoMessage

func (*CommitmentTreeState) ProtoMessage()

func (*CommitmentTreeState) ProtoReflect

func (x *CommitmentTreeState) ProtoReflect() protoreflect.Message

func (*CommitmentTreeState) Reset

func (x *CommitmentTreeState) Reset()

func (*CommitmentTreeState) String

func (x *CommitmentTreeState) String() string

type DKGContribution added in v0.4.0

type DKGContribution struct {
	ValidatorAddress   string           `protobuf:"bytes,1,opt,name=validator_address,json=validatorAddress,proto3" json:"validator_address,omitempty"`
	FeldmanCommitments [][]byte         `protobuf:"bytes,2,rep,name=feldman_commitments,json=feldmanCommitments,proto3" json:"feldman_commitments,omitempty"` // C_j = a_j*G for j=0..t-1
	Payloads           []*DealerPayload `protobuf:"bytes,3,rep,name=payloads,proto3" json:"payloads,omitempty"`                                               // One ECIES envelope per ceremony validator
	// contains filtered or unexported fields
}

DKGContribution holds one validator's contribution to the Joint-Feldman DKG. Each participant generates a random polynomial, publishes Feldman commitments, and ECIES-encrypts a share to every other participant.

func (*DKGContribution) Descriptor deprecated added in v0.4.0

func (*DKGContribution) Descriptor() ([]byte, []int)

Deprecated: Use DKGContribution.ProtoReflect.Descriptor instead.

func (*DKGContribution) GetFeldmanCommitments added in v0.4.0

func (x *DKGContribution) GetFeldmanCommitments() [][]byte

func (*DKGContribution) GetPayloads added in v0.4.0

func (x *DKGContribution) GetPayloads() []*DealerPayload

func (*DKGContribution) GetValidatorAddress added in v0.4.0

func (x *DKGContribution) GetValidatorAddress() string

func (*DKGContribution) ProtoMessage added in v0.4.0

func (*DKGContribution) ProtoMessage()

func (*DKGContribution) ProtoReflect added in v0.4.0

func (x *DKGContribution) ProtoReflect() protoreflect.Message

func (*DKGContribution) Reset added in v0.4.0

func (x *DKGContribution) Reset()

func (*DKGContribution) String added in v0.4.0

func (x *DKGContribution) String() string

type DealerPayload

type DealerPayload struct {
	ValidatorAddress string `protobuf:"bytes,1,opt,name=validator_address,json=validatorAddress,proto3" json:"validator_address,omitempty"`
	EphemeralPk      []byte `protobuf:"bytes,2,opt,name=ephemeral_pk,json=ephemeralPk,proto3" json:"ephemeral_pk,omitempty"` // E_i (32 bytes)
	Ciphertext       []byte `protobuf:"bytes,3,opt,name=ciphertext,proto3" json:"ciphertext,omitempty"`                      // ct_i: ChaCha20-Poly1305 (32 + 16 = 48 bytes)
	// contains filtered or unexported fields
}

DealerPayload is an ECIES envelope from the dealer to a specific validator.

func (*DealerPayload) Descriptor deprecated

func (*DealerPayload) Descriptor() ([]byte, []int)

Deprecated: Use DealerPayload.ProtoReflect.Descriptor instead.

func (*DealerPayload) GetCiphertext

func (x *DealerPayload) GetCiphertext() []byte

func (*DealerPayload) GetEphemeralPk

func (x *DealerPayload) GetEphemeralPk() []byte

func (*DealerPayload) GetValidatorAddress

func (x *DealerPayload) GetValidatorAddress() string

func (*DealerPayload) ProtoMessage

func (*DealerPayload) ProtoMessage()

func (*DealerPayload) ProtoReflect

func (x *DealerPayload) ProtoReflect() protoreflect.Message

func (*DealerPayload) Reset

func (x *DealerPayload) Reset()

func (*DealerPayload) String

func (x *DealerPayload) String() string

type GenesisBlockLeafIndex added in v0.3.1

type GenesisBlockLeafIndex struct {
	Height     uint64 `protobuf:"varint,1,opt,name=height,proto3" json:"height,omitempty"`
	StartIndex uint64 `protobuf:"varint,2,opt,name=start_index,json=startIndex,proto3" json:"start_index,omitempty"`
	Count      uint64 `protobuf:"varint,3,opt,name=count,proto3" json:"count,omitempty"`
	// contains filtered or unexported fields
}

GenesisBlockLeafIndex records the range of commitment leaves appended during a specific block height. Client convenience for the CommitmentLeaves query.

func (*GenesisBlockLeafIndex) Descriptor deprecated added in v0.3.1

func (*GenesisBlockLeafIndex) Descriptor() ([]byte, []int)

Deprecated: Use GenesisBlockLeafIndex.ProtoReflect.Descriptor instead.

func (*GenesisBlockLeafIndex) GetCount added in v0.3.1

func (x *GenesisBlockLeafIndex) GetCount() uint64

func (*GenesisBlockLeafIndex) GetHeight added in v0.3.1

func (x *GenesisBlockLeafIndex) GetHeight() uint64

func (*GenesisBlockLeafIndex) GetStartIndex added in v0.3.1

func (x *GenesisBlockLeafIndex) GetStartIndex() uint64

func (*GenesisBlockLeafIndex) ProtoMessage added in v0.3.1

func (*GenesisBlockLeafIndex) ProtoMessage()

func (*GenesisBlockLeafIndex) ProtoReflect added in v0.3.1

func (x *GenesisBlockLeafIndex) ProtoReflect() protoreflect.Message

func (*GenesisBlockLeafIndex) Reset added in v0.3.1

func (x *GenesisBlockLeafIndex) Reset()

func (*GenesisBlockLeafIndex) String added in v0.3.1

func (x *GenesisBlockLeafIndex) String() string

type GenesisCommitmentRoot

type GenesisCommitmentRoot struct {
	Height uint64 `protobuf:"varint,1,opt,name=height,proto3" json:"height,omitempty"`
	Root   []byte `protobuf:"bytes,2,opt,name=root,proto3" json:"root,omitempty"`
	// contains filtered or unexported fields
}

GenesisCommitmentRoot is a commitment tree root stored at a specific block height.

func (*GenesisCommitmentRoot) Descriptor deprecated

func (*GenesisCommitmentRoot) Descriptor() ([]byte, []int)

Deprecated: Use GenesisCommitmentRoot.ProtoReflect.Descriptor instead.

func (*GenesisCommitmentRoot) GetHeight

func (x *GenesisCommitmentRoot) GetHeight() uint64

func (*GenesisCommitmentRoot) GetRoot

func (x *GenesisCommitmentRoot) GetRoot() []byte

func (*GenesisCommitmentRoot) ProtoMessage

func (*GenesisCommitmentRoot) ProtoMessage()

func (*GenesisCommitmentRoot) ProtoReflect

func (x *GenesisCommitmentRoot) ProtoReflect() protoreflect.Message

func (*GenesisCommitmentRoot) Reset

func (x *GenesisCommitmentRoot) Reset()

func (*GenesisCommitmentRoot) String

func (x *GenesisCommitmentRoot) String() string

type GenesisPartialDecryption added in v0.3.1

type GenesisPartialDecryption struct {
	RoundId        []byte `protobuf:"bytes,1,opt,name=round_id,json=roundId,proto3" json:"round_id,omitempty"`
	ValidatorIndex uint32 `protobuf:"varint,2,opt,name=validator_index,json=validatorIndex,proto3" json:"validator_index,omitempty"`
	ProposalId     uint32 `protobuf:"varint,3,opt,name=proposal_id,json=proposalId,proto3" json:"proposal_id,omitempty"`
	VoteDecision   uint32 `protobuf:"varint,4,opt,name=vote_decision,json=voteDecision,proto3" json:"vote_decision,omitempty"`
	PartialDecrypt []byte `protobuf:"bytes,5,opt,name=partial_decrypt,json=partialDecrypt,proto3" json:"partial_decrypt,omitempty"` // 32-byte compressed Pallas point D_i
	DleqProof      []byte `protobuf:"bytes,6,opt,name=dleq_proof,json=dleqProof,proto3" json:"dleq_proof,omitempty"`                // reserved for DLEQ proofs (Step 2)
	// contains filtered or unexported fields
}

GenesisPartialDecryption stores one validator's partial decryption D_i for a single (round, proposal, decision) accumulator. Exported during TALLYING so validators do not need to re-submit after a chain migration.

func (*GenesisPartialDecryption) Descriptor deprecated added in v0.3.1

func (*GenesisPartialDecryption) Descriptor() ([]byte, []int)

Deprecated: Use GenesisPartialDecryption.ProtoReflect.Descriptor instead.

func (*GenesisPartialDecryption) GetDleqProof added in v0.3.1

func (x *GenesisPartialDecryption) GetDleqProof() []byte

func (*GenesisPartialDecryption) GetPartialDecrypt added in v0.3.1

func (x *GenesisPartialDecryption) GetPartialDecrypt() []byte

func (*GenesisPartialDecryption) GetProposalId added in v0.3.1

func (x *GenesisPartialDecryption) GetProposalId() uint32

func (*GenesisPartialDecryption) GetRoundId added in v0.3.1

func (x *GenesisPartialDecryption) GetRoundId() []byte

func (*GenesisPartialDecryption) GetValidatorIndex added in v0.3.1

func (x *GenesisPartialDecryption) GetValidatorIndex() uint32

func (*GenesisPartialDecryption) GetVoteDecision added in v0.3.1

func (x *GenesisPartialDecryption) GetVoteDecision() uint32

func (*GenesisPartialDecryption) ProtoMessage added in v0.3.1

func (*GenesisPartialDecryption) ProtoMessage()

func (*GenesisPartialDecryption) ProtoReflect added in v0.3.1

func (x *GenesisPartialDecryption) ProtoReflect() protoreflect.Message

func (*GenesisPartialDecryption) Reset added in v0.3.1

func (x *GenesisPartialDecryption) Reset()

func (*GenesisPartialDecryption) String added in v0.3.1

func (x *GenesisPartialDecryption) String() string

type GenesisRoundTree added in v0.3.0

type GenesisRoundTree struct {
	VoteRoundId      []byte                   `protobuf:"bytes,1,opt,name=vote_round_id,json=voteRoundId,proto3" json:"vote_round_id,omitempty"`
	TreeState        *CommitmentTreeState     `protobuf:"bytes,2,opt,name=tree_state,json=treeState,proto3" json:"tree_state,omitempty"`
	CommitmentLeaves []*CommitmentLeaf        `protobuf:"bytes,3,rep,name=commitment_leaves,json=commitmentLeaves,proto3" json:"commitment_leaves,omitempty"`
	CommitmentRoots  []*GenesisCommitmentRoot `protobuf:"bytes,4,rep,name=commitment_roots,json=commitmentRoots,proto3" json:"commitment_roots,omitempty"`
	BlockLeafIndices []*GenesisBlockLeafIndex `protobuf:"bytes,5,rep,name=block_leaf_indices,json=blockLeafIndices,proto3" json:"block_leaf_indices,omitempty"`
	// contains filtered or unexported fields
}

GenesisRoundTree holds per-round commitment tree state for genesis export/import.

func (*GenesisRoundTree) Descriptor deprecated added in v0.3.0

func (*GenesisRoundTree) Descriptor() ([]byte, []int)

Deprecated: Use GenesisRoundTree.ProtoReflect.Descriptor instead.

func (*GenesisRoundTree) GetBlockLeafIndices added in v0.3.1

func (x *GenesisRoundTree) GetBlockLeafIndices() []*GenesisBlockLeafIndex

func (*GenesisRoundTree) GetCommitmentLeaves added in v0.3.0

func (x *GenesisRoundTree) GetCommitmentLeaves() []*CommitmentLeaf

func (*GenesisRoundTree) GetCommitmentRoots added in v0.3.0

func (x *GenesisRoundTree) GetCommitmentRoots() []*GenesisCommitmentRoot

func (*GenesisRoundTree) GetTreeState added in v0.3.0

func (x *GenesisRoundTree) GetTreeState() *CommitmentTreeState

func (*GenesisRoundTree) GetVoteRoundId added in v0.3.0

func (x *GenesisRoundTree) GetVoteRoundId() []byte

func (*GenesisRoundTree) ProtoMessage added in v0.3.0

func (*GenesisRoundTree) ProtoMessage()

func (*GenesisRoundTree) ProtoReflect added in v0.3.0

func (x *GenesisRoundTree) ProtoReflect() protoreflect.Message

func (*GenesisRoundTree) Reset added in v0.3.0

func (x *GenesisRoundTree) Reset()

func (*GenesisRoundTree) String added in v0.3.0

func (x *GenesisRoundTree) String() string

type GenesisShareCount

type GenesisShareCount struct {
	RoundId      []byte `protobuf:"bytes,1,opt,name=round_id,json=roundId,proto3" json:"round_id,omitempty"`
	ProposalId   uint32 `protobuf:"varint,2,opt,name=proposal_id,json=proposalId,proto3" json:"proposal_id,omitempty"`
	VoteDecision uint32 `protobuf:"varint,3,opt,name=vote_decision,json=voteDecision,proto3" json:"vote_decision,omitempty"`
	Count        uint64 `protobuf:"varint,4,opt,name=count,proto3" json:"count,omitempty"`
	// contains filtered or unexported fields
}

GenesisShareCount is a share reveal count for a (round, proposal, decision) tuple.

func (*GenesisShareCount) Descriptor deprecated

func (*GenesisShareCount) Descriptor() ([]byte, []int)

Deprecated: Use GenesisShareCount.ProtoReflect.Descriptor instead.

func (*GenesisShareCount) GetCount

func (x *GenesisShareCount) GetCount() uint64

func (*GenesisShareCount) GetProposalId

func (x *GenesisShareCount) GetProposalId() uint32

func (*GenesisShareCount) GetRoundId

func (x *GenesisShareCount) GetRoundId() []byte

func (*GenesisShareCount) GetVoteDecision

func (x *GenesisShareCount) GetVoteDecision() uint32

func (*GenesisShareCount) ProtoMessage

func (*GenesisShareCount) ProtoMessage()

func (*GenesisShareCount) ProtoReflect

func (x *GenesisShareCount) ProtoReflect() protoreflect.Message

func (*GenesisShareCount) Reset

func (x *GenesisShareCount) Reset()

func (*GenesisShareCount) String

func (x *GenesisShareCount) String() string

type GenesisState

type GenesisState struct {
	Rounds                []*VoteRound                `protobuf:"bytes,1,rep,name=rounds,proto3" json:"rounds,omitempty"`
	Nullifiers            []*NullifierEntry           `protobuf:"bytes,4,rep,name=nullifiers,proto3" json:"nullifiers,omitempty"`
	VoteManagerAddresses  []string                    `protobuf:"bytes,5,rep,name=vote_manager_addresses,json=voteManagerAddresses,proto3" json:"vote_manager_addresses,omitempty"`
	TallyResults          []*TallyResult              `protobuf:"bytes,6,rep,name=tally_results,json=tallyResults,proto3" json:"tally_results,omitempty"`
	PallasKeys            []*ValidatorPallasKey       `protobuf:"bytes,7,rep,name=pallas_keys,json=pallasKeys,proto3" json:"pallas_keys,omitempty"`
	TallyAccumulators     []*GenesisTallyAccumulator  `protobuf:"bytes,8,rep,name=tally_accumulators,json=tallyAccumulators,proto3" json:"tally_accumulators,omitempty"`
	ShareCounts           []*GenesisShareCount        `protobuf:"bytes,9,rep,name=share_counts,json=shareCounts,proto3" json:"share_counts,omitempty"`
	MinCeremonyValidators uint32                      `` /* 128-byte string literal not displayed */
	RoundTrees            []*GenesisRoundTree         `protobuf:"bytes,12,rep,name=round_trees,json=roundTrees,proto3" json:"round_trees,omitempty"`
	PartialDecryptions    []*GenesisPartialDecryption `protobuf:"bytes,13,rep,name=partial_decryptions,json=partialDecryptions,proto3" json:"partial_decryptions,omitempty"`
	// contains filtered or unexported fields
}

GenesisState defines the vote module's genesis state.

func (*GenesisState) Descriptor deprecated

func (*GenesisState) Descriptor() ([]byte, []int)

Deprecated: Use GenesisState.ProtoReflect.Descriptor instead.

func (*GenesisState) GetMinCeremonyValidators added in v0.2.0

func (x *GenesisState) GetMinCeremonyValidators() uint32

func (*GenesisState) GetNullifiers

func (x *GenesisState) GetNullifiers() []*NullifierEntry

func (*GenesisState) GetPallasKeys

func (x *GenesisState) GetPallasKeys() []*ValidatorPallasKey

func (*GenesisState) GetPartialDecryptions added in v0.3.1

func (x *GenesisState) GetPartialDecryptions() []*GenesisPartialDecryption

func (*GenesisState) GetRoundTrees added in v0.3.0

func (x *GenesisState) GetRoundTrees() []*GenesisRoundTree

func (*GenesisState) GetRounds

func (x *GenesisState) GetRounds() []*VoteRound

func (*GenesisState) GetShareCounts

func (x *GenesisState) GetShareCounts() []*GenesisShareCount

func (*GenesisState) GetTallyAccumulators

func (x *GenesisState) GetTallyAccumulators() []*GenesisTallyAccumulator

func (*GenesisState) GetTallyResults

func (x *GenesisState) GetTallyResults() []*TallyResult

func (*GenesisState) GetVoteManagerAddresses added in v0.5.8

func (x *GenesisState) GetVoteManagerAddresses() []string

func (*GenesisState) ProtoMessage

func (*GenesisState) ProtoMessage()

func (*GenesisState) ProtoReflect

func (x *GenesisState) ProtoReflect() protoreflect.Message

func (*GenesisState) Reset

func (x *GenesisState) Reset()

func (*GenesisState) String

func (x *GenesisState) String() string

type GenesisTallyAccumulator

type GenesisTallyAccumulator struct {
	RoundId      []byte `protobuf:"bytes,1,opt,name=round_id,json=roundId,proto3" json:"round_id,omitempty"`
	ProposalId   uint32 `protobuf:"varint,2,opt,name=proposal_id,json=proposalId,proto3" json:"proposal_id,omitempty"`
	VoteDecision uint32 `protobuf:"varint,3,opt,name=vote_decision,json=voteDecision,proto3" json:"vote_decision,omitempty"`
	Ciphertext   []byte `protobuf:"bytes,4,opt,name=ciphertext,proto3" json:"ciphertext,omitempty"` // 64-byte ElGamal ciphertext
	// contains filtered or unexported fields
}

GenesisTallyAccumulator is an in-progress ElGamal tally ciphertext for a (round, proposal, decision) tuple.

func (*GenesisTallyAccumulator) Descriptor deprecated

func (*GenesisTallyAccumulator) Descriptor() ([]byte, []int)

Deprecated: Use GenesisTallyAccumulator.ProtoReflect.Descriptor instead.

func (*GenesisTallyAccumulator) GetCiphertext

func (x *GenesisTallyAccumulator) GetCiphertext() []byte

func (*GenesisTallyAccumulator) GetProposalId

func (x *GenesisTallyAccumulator) GetProposalId() uint32

func (*GenesisTallyAccumulator) GetRoundId

func (x *GenesisTallyAccumulator) GetRoundId() []byte

func (*GenesisTallyAccumulator) GetVoteDecision

func (x *GenesisTallyAccumulator) GetVoteDecision() uint32

func (*GenesisTallyAccumulator) ProtoMessage

func (*GenesisTallyAccumulator) ProtoMessage()

func (*GenesisTallyAccumulator) ProtoReflect

func (x *GenesisTallyAccumulator) ProtoReflect() protoreflect.Message

func (*GenesisTallyAccumulator) Reset

func (x *GenesisTallyAccumulator) Reset()

func (*GenesisTallyAccumulator) String

func (x *GenesisTallyAccumulator) String() string

type MsgAckExecutiveAuthorityKey

type MsgAckExecutiveAuthorityKey struct {
	Creator      string `protobuf:"bytes,1,opt,name=creator,proto3" json:"creator,omitempty"`                               // Validator address
	AckSignature []byte `protobuf:"bytes,2,opt,name=ack_signature,json=ackSignature,proto3" json:"ack_signature,omitempty"` // Commitment digest: SHA256("ack" || ea_pk || validator_address). Not a cryptographic signature; field name kept for wire compatibility.
	VoteRoundId  []byte `protobuf:"bytes,3,opt,name=vote_round_id,json=voteRoundId,proto3" json:"vote_round_id,omitempty"`  // Target voting round (per-round ceremony)
	// contains filtered or unexported fields
}

MsgAckExecutiveAuthorityKey is submitted by a validator to acknowledge receipt of their ea_sk share.

func (*MsgAckExecutiveAuthorityKey) Descriptor deprecated

func (*MsgAckExecutiveAuthorityKey) Descriptor() ([]byte, []int)

Deprecated: Use MsgAckExecutiveAuthorityKey.ProtoReflect.Descriptor instead.

func (*MsgAckExecutiveAuthorityKey) GetAckSignature

func (x *MsgAckExecutiveAuthorityKey) GetAckSignature() []byte

func (*MsgAckExecutiveAuthorityKey) GetCreator

func (x *MsgAckExecutiveAuthorityKey) GetCreator() string

func (*MsgAckExecutiveAuthorityKey) GetVoteRoundId

func (x *MsgAckExecutiveAuthorityKey) GetVoteRoundId() []byte

func (*MsgAckExecutiveAuthorityKey) ProtoMessage

func (*MsgAckExecutiveAuthorityKey) ProtoMessage()

func (*MsgAckExecutiveAuthorityKey) ProtoReflect

func (*MsgAckExecutiveAuthorityKey) Reset

func (x *MsgAckExecutiveAuthorityKey) Reset()

func (*MsgAckExecutiveAuthorityKey) String

func (x *MsgAckExecutiveAuthorityKey) String() string

type MsgAckExecutiveAuthorityKeyResponse

type MsgAckExecutiveAuthorityKeyResponse struct {
	// contains filtered or unexported fields
}

func (*MsgAckExecutiveAuthorityKeyResponse) Descriptor deprecated

func (*MsgAckExecutiveAuthorityKeyResponse) Descriptor() ([]byte, []int)

Deprecated: Use MsgAckExecutiveAuthorityKeyResponse.ProtoReflect.Descriptor instead.

func (*MsgAckExecutiveAuthorityKeyResponse) ProtoMessage

func (*MsgAckExecutiveAuthorityKeyResponse) ProtoMessage()

func (*MsgAckExecutiveAuthorityKeyResponse) ProtoReflect

func (*MsgAckExecutiveAuthorityKeyResponse) Reset

func (*MsgAckExecutiveAuthorityKeyResponse) String

type MsgAuthorizedSend added in v0.3.0

type MsgAuthorizedSend struct {
	FromAddress string `protobuf:"bytes,1,opt,name=from_address,json=fromAddress,proto3" json:"from_address,omitempty"`
	ToAddress   string `protobuf:"bytes,2,opt,name=to_address,json=toAddress,proto3" json:"to_address,omitempty"`
	Amount      string `protobuf:"bytes,3,opt,name=amount,proto3" json:"amount,omitempty"` // Integer string, e.g. "1000000"
	Denom       string `protobuf:"bytes,4,opt,name=denom,proto3" json:"denom,omitempty"`   // e.g. "usvote"
	// contains filtered or unexported fields
}

MsgAuthorizedSend is the only way to transfer coins on this chain. Standard bank MsgSend and MsgMultiSend are disabled at the ante-handler level because unrestricted transfers would let anyone accumulate enough stake to create a validator, bypassing the controlled validator set.

Authorization rules:

  • Any vote manager can send to anyone (distributes stake to new validators).
  • Bonded validators can send to any vote manager or to other bonded validators.
  • All other senders are rejected.

func (*MsgAuthorizedSend) Descriptor deprecated added in v0.3.0

func (*MsgAuthorizedSend) Descriptor() ([]byte, []int)

Deprecated: Use MsgAuthorizedSend.ProtoReflect.Descriptor instead.

func (*MsgAuthorizedSend) GetAmount added in v0.3.0

func (x *MsgAuthorizedSend) GetAmount() string

func (*MsgAuthorizedSend) GetDenom added in v0.3.0

func (x *MsgAuthorizedSend) GetDenom() string

func (*MsgAuthorizedSend) GetFromAddress added in v0.3.0

func (x *MsgAuthorizedSend) GetFromAddress() string

func (*MsgAuthorizedSend) GetToAddress added in v0.3.0

func (x *MsgAuthorizedSend) GetToAddress() string

func (*MsgAuthorizedSend) ProtoMessage added in v0.3.0

func (*MsgAuthorizedSend) ProtoMessage()

func (*MsgAuthorizedSend) ProtoReflect added in v0.3.0

func (x *MsgAuthorizedSend) ProtoReflect() protoreflect.Message

func (*MsgAuthorizedSend) Reset added in v0.3.0

func (x *MsgAuthorizedSend) Reset()

func (*MsgAuthorizedSend) String added in v0.3.0

func (x *MsgAuthorizedSend) String() string

type MsgAuthorizedSendResponse added in v0.3.0

type MsgAuthorizedSendResponse struct {
	// contains filtered or unexported fields
}

func (*MsgAuthorizedSendResponse) Descriptor deprecated added in v0.3.0

func (*MsgAuthorizedSendResponse) Descriptor() ([]byte, []int)

Deprecated: Use MsgAuthorizedSendResponse.ProtoReflect.Descriptor instead.

func (*MsgAuthorizedSendResponse) ProtoMessage added in v0.3.0

func (*MsgAuthorizedSendResponse) ProtoMessage()

func (*MsgAuthorizedSendResponse) ProtoReflect added in v0.3.0

func (*MsgAuthorizedSendResponse) Reset added in v0.3.0

func (x *MsgAuthorizedSendResponse) Reset()

func (*MsgAuthorizedSendResponse) String added in v0.3.0

func (x *MsgAuthorizedSendResponse) String() string

type MsgCastVote

type MsgCastVote struct {
	VanNullifier             []byte `protobuf:"bytes,1,opt,name=van_nullifier,json=vanNullifier,proto3" json:"van_nullifier,omitempty"`
	VoteAuthorityNoteNew     []byte `protobuf:"bytes,2,opt,name=vote_authority_note_new,json=voteAuthorityNoteNew,proto3" json:"vote_authority_note_new,omitempty"`
	VoteCommitment           []byte `protobuf:"bytes,3,opt,name=vote_commitment,json=voteCommitment,proto3" json:"vote_commitment,omitempty"`
	ProposalId               uint32 `protobuf:"varint,4,opt,name=proposal_id,json=proposalId,proto3" json:"proposal_id,omitempty"`
	Proof                    []byte `protobuf:"bytes,5,opt,name=proof,proto3" json:"proof,omitempty"`
	VoteRoundId              []byte `protobuf:"bytes,6,opt,name=vote_round_id,json=voteRoundId,proto3" json:"vote_round_id,omitempty"`
	VoteCommTreeAnchorHeight uint64 `` /* 140-byte string literal not displayed */
	// Fields 8-9 removed: r_vpk_x/r_vpk_y are now decompressed from r_vpk in the FFI verifier.
	VoteAuthSig []byte `protobuf:"bytes,10,opt,name=vote_auth_sig,json=voteAuthSig,proto3" json:"vote_auth_sig,omitempty"` // RedPallas signature under randomized voting key
	// Field 11 removed: sighash is now computed on-chain via ComputeCastVoteSighash.
	RVpk []byte `protobuf:"bytes,12,opt,name=r_vpk,json=rVpk,proto3" json:"r_vpk,omitempty"` // Compressed Pallas point (32 bytes) — sig verification + FFI decompresses to (x,y) for ZKP
	// contains filtered or unexported fields
}

MsgCastVote corresponds to ZKP #2: create a vote commitment. Condition 4 (Spend Authority) adds r_vpk = vsk.ak + [alpha_v]*G; the circuit exposes r_vpk_x and r_vpk_y as public inputs, so the client must send them.

func (*MsgCastVote) AcceptsTallyingRound

func (msg *MsgCastVote) AcceptsTallyingRound() bool

AcceptsTallyingRound returns false — casting votes requires ACTIVE status.

func (*MsgCastVote) Descriptor deprecated

func (*MsgCastVote) Descriptor() ([]byte, []int)

Deprecated: Use MsgCastVote.ProtoReflect.Descriptor instead.

func (*MsgCastVote) GetNullifierType

func (msg *MsgCastVote) GetNullifierType() NullifierType

GetNullifierType returns NullifierTypeVoteAuthorityNote for MsgCastVote.

func (*MsgCastVote) GetNullifiers

func (msg *MsgCastVote) GetNullifiers() [][]byte

GetNullifiers returns the nullifiers from a MsgCastVote.

func (*MsgCastVote) GetProof

func (x *MsgCastVote) GetProof() []byte

func (*MsgCastVote) GetProposalId

func (x *MsgCastVote) GetProposalId() uint32

func (*MsgCastVote) GetRVpk

func (x *MsgCastVote) GetRVpk() []byte

func (*MsgCastVote) GetVanNullifier

func (x *MsgCastVote) GetVanNullifier() []byte

func (*MsgCastVote) GetVoteAuthSig

func (x *MsgCastVote) GetVoteAuthSig() []byte

func (*MsgCastVote) GetVoteAuthorityNoteNew

func (x *MsgCastVote) GetVoteAuthorityNoteNew() []byte

func (*MsgCastVote) GetVoteCommTreeAnchorHeight

func (x *MsgCastVote) GetVoteCommTreeAnchorHeight() uint64

func (*MsgCastVote) GetVoteCommitment

func (x *MsgCastVote) GetVoteCommitment() []byte

func (*MsgCastVote) GetVoteRoundId

func (x *MsgCastVote) GetVoteRoundId() []byte

func (*MsgCastVote) ProtoMessage

func (*MsgCastVote) ProtoMessage()

func (*MsgCastVote) ProtoReflect

func (x *MsgCastVote) ProtoReflect() protoreflect.Message

func (*MsgCastVote) Reset

func (x *MsgCastVote) Reset()

func (*MsgCastVote) String

func (x *MsgCastVote) String() string

func (*MsgCastVote) ValidateBasic

func (msg *MsgCastVote) ValidateBasic() error

ValidateBasic performs stateless validation for MsgCastVote.

type MsgCastVoteResponse

type MsgCastVoteResponse struct {
	// contains filtered or unexported fields
}

func (*MsgCastVoteResponse) Descriptor deprecated

func (*MsgCastVoteResponse) Descriptor() ([]byte, []int)

Deprecated: Use MsgCastVoteResponse.ProtoReflect.Descriptor instead.

func (*MsgCastVoteResponse) ProtoMessage

func (*MsgCastVoteResponse) ProtoMessage()

func (*MsgCastVoteResponse) ProtoReflect

func (x *MsgCastVoteResponse) ProtoReflect() protoreflect.Message

func (*MsgCastVoteResponse) Reset

func (x *MsgCastVoteResponse) Reset()

func (*MsgCastVoteResponse) String

func (x *MsgCastVoteResponse) String() string

type MsgClient

type MsgClient interface {
	CreateVotingSession(ctx context.Context, in *MsgCreateVotingSession, opts ...grpc.CallOption) (*MsgCreateVotingSessionResponse, error)
	DelegateVote(ctx context.Context, in *MsgDelegateVote, opts ...grpc.CallOption) (*MsgDelegateVoteResponse, error)
	CastVote(ctx context.Context, in *MsgCastVote, opts ...grpc.CallOption) (*MsgCastVoteResponse, error)
	RevealShare(ctx context.Context, in *MsgRevealShare, opts ...grpc.CallOption) (*MsgRevealShareResponse, error)
	SubmitTally(ctx context.Context, in *MsgSubmitTally, opts ...grpc.CallOption) (*MsgSubmitTallyResponse, error)
	SubmitPartialDecryption(ctx context.Context, in *MsgSubmitPartialDecryption, opts ...grpc.CallOption) (*MsgSubmitPartialDecryptionResponse, error)
	RegisterPallasKey(ctx context.Context, in *MsgRegisterPallasKey, opts ...grpc.CallOption) (*MsgRegisterPallasKeyResponse, error)
	RotatePallasKey(ctx context.Context, in *MsgRotatePallasKey, opts ...grpc.CallOption) (*MsgRotatePallasKeyResponse, error)
	ContributeDKG(ctx context.Context, in *MsgContributeDKG, opts ...grpc.CallOption) (*MsgContributeDKGResponse, error)
	AckExecutiveAuthorityKey(ctx context.Context, in *MsgAckExecutiveAuthorityKey, opts ...grpc.CallOption) (*MsgAckExecutiveAuthorityKeyResponse, error)
	CreateValidatorWithPallasKey(ctx context.Context, in *MsgCreateValidatorWithPallasKey, opts ...grpc.CallOption) (*MsgCreateValidatorWithPallasKeyResponse, error)
	UpdateVoteManagers(ctx context.Context, in *MsgUpdateVoteManagers, opts ...grpc.CallOption) (*MsgUpdateVoteManagersResponse, error)
	AuthorizedSend(ctx context.Context, in *MsgAuthorizedSend, opts ...grpc.CallOption) (*MsgAuthorizedSendResponse, error)
}

MsgClient is the client API for Msg service.

For semantics around ctx use and closing/ending streaming RPCs, please refer to https://pkg.go.dev/google.golang.org/grpc/?tab=doc#ClientConn.NewStream.

Msg defines the vote module's Msg service. NOTE: Vote transactions use ZKP + RedPallas authentication instead of standard Cosmos signatures. In Phase 5, transaction submission bypasses the Cosmos Tx envelope entirely; the Msg service is defined here for gRPC registration only.

func NewMsgClient

func NewMsgClient(cc grpc.ClientConnInterface) MsgClient

type MsgContributeDKG added in v0.4.0

type MsgContributeDKG struct {
	Creator            string           `protobuf:"bytes,1,opt,name=creator,proto3" json:"creator,omitempty"`
	VoteRoundId        []byte           `protobuf:"bytes,2,opt,name=vote_round_id,json=voteRoundId,proto3" json:"vote_round_id,omitempty"`
	FeldmanCommitments [][]byte         `protobuf:"bytes,3,rep,name=feldman_commitments,json=feldmanCommitments,proto3" json:"feldman_commitments,omitempty"` // C_j = a_j*G for j=0..t-1
	Payloads           []*DealerPayload `protobuf:"bytes,4,rep,name=payloads,proto3" json:"payloads,omitempty"`                                               // One ECIES envelope per ceremony validator
	// contains filtered or unexported fields
}

MsgContributeDKG is a validator's contribution to the Joint-Feldman DKG. Each validator generates a random polynomial, publishes Feldman commitments, and distributes ECIES-encrypted shares to all ceremony participants.

func (*MsgContributeDKG) Descriptor deprecated added in v0.4.0

func (*MsgContributeDKG) Descriptor() ([]byte, []int)

Deprecated: Use MsgContributeDKG.ProtoReflect.Descriptor instead.

func (*MsgContributeDKG) GetCreator added in v0.4.0

func (x *MsgContributeDKG) GetCreator() string

func (*MsgContributeDKG) GetFeldmanCommitments added in v0.4.0

func (x *MsgContributeDKG) GetFeldmanCommitments() [][]byte

func (*MsgContributeDKG) GetPayloads added in v0.4.0

func (x *MsgContributeDKG) GetPayloads() []*DealerPayload

func (*MsgContributeDKG) GetVoteRoundId added in v0.4.0

func (x *MsgContributeDKG) GetVoteRoundId() []byte

func (*MsgContributeDKG) ProtoMessage added in v0.4.0

func (*MsgContributeDKG) ProtoMessage()

func (*MsgContributeDKG) ProtoReflect added in v0.4.0

func (x *MsgContributeDKG) ProtoReflect() protoreflect.Message

func (*MsgContributeDKG) Reset added in v0.4.0

func (x *MsgContributeDKG) Reset()

func (*MsgContributeDKG) String added in v0.4.0

func (x *MsgContributeDKG) String() string

type MsgContributeDKGResponse added in v0.4.0

type MsgContributeDKGResponse struct {
	// contains filtered or unexported fields
}

func (*MsgContributeDKGResponse) Descriptor deprecated added in v0.4.0

func (*MsgContributeDKGResponse) Descriptor() ([]byte, []int)

Deprecated: Use MsgContributeDKGResponse.ProtoReflect.Descriptor instead.

func (*MsgContributeDKGResponse) ProtoMessage added in v0.4.0

func (*MsgContributeDKGResponse) ProtoMessage()

func (*MsgContributeDKGResponse) ProtoReflect added in v0.4.0

func (x *MsgContributeDKGResponse) ProtoReflect() protoreflect.Message

func (*MsgContributeDKGResponse) Reset added in v0.4.0

func (x *MsgContributeDKGResponse) Reset()

func (*MsgContributeDKGResponse) String added in v0.4.0

func (x *MsgContributeDKGResponse) String() string

type MsgCreateValidatorWithPallasKey

type MsgCreateValidatorWithPallasKey struct {
	StakingMsg []byte `protobuf:"bytes,1,opt,name=staking_msg,json=stakingMsg,proto3" json:"staking_msg,omitempty"` // Encoded cosmos.staking.v1beta1.MsgCreateValidator
	PallasPk   []byte `protobuf:"bytes,2,opt,name=pallas_pk,json=pallasPk,proto3" json:"pallas_pk,omitempty"`       // Compressed Pallas point (32 bytes)
	// contains filtered or unexported fields
}

MsgCreateValidatorWithPallasKey wraps standard MsgCreateValidator with a Pallas public key. The handler creates the validator via the staking module, then registers the Pallas key in the ceremony state. Raw MsgCreateValidator is blocked by the ante handler for live txs.

func (*MsgCreateValidatorWithPallasKey) Descriptor deprecated

func (*MsgCreateValidatorWithPallasKey) Descriptor() ([]byte, []int)

Deprecated: Use MsgCreateValidatorWithPallasKey.ProtoReflect.Descriptor instead.

func (*MsgCreateValidatorWithPallasKey) GetPallasPk

func (x *MsgCreateValidatorWithPallasKey) GetPallasPk() []byte

func (*MsgCreateValidatorWithPallasKey) GetStakingMsg

func (x *MsgCreateValidatorWithPallasKey) GetStakingMsg() []byte

func (*MsgCreateValidatorWithPallasKey) ProtoMessage

func (*MsgCreateValidatorWithPallasKey) ProtoMessage()

func (*MsgCreateValidatorWithPallasKey) ProtoReflect

func (*MsgCreateValidatorWithPallasKey) Reset

func (*MsgCreateValidatorWithPallasKey) String

type MsgCreateValidatorWithPallasKeyResponse

type MsgCreateValidatorWithPallasKeyResponse struct {
	// contains filtered or unexported fields
}

func (*MsgCreateValidatorWithPallasKeyResponse) Descriptor deprecated

func (*MsgCreateValidatorWithPallasKeyResponse) Descriptor() ([]byte, []int)

Deprecated: Use MsgCreateValidatorWithPallasKeyResponse.ProtoReflect.Descriptor instead.

func (*MsgCreateValidatorWithPallasKeyResponse) ProtoMessage

func (*MsgCreateValidatorWithPallasKeyResponse) ProtoReflect

func (*MsgCreateValidatorWithPallasKeyResponse) Reset

func (*MsgCreateValidatorWithPallasKeyResponse) String

type MsgCreateVotingSession

type MsgCreateVotingSession struct {
	Creator           string      `protobuf:"bytes,1,opt,name=creator,proto3" json:"creator,omitempty"`
	SnapshotHeight    uint64      `protobuf:"varint,2,opt,name=snapshot_height,json=snapshotHeight,proto3" json:"snapshot_height,omitempty"`
	SnapshotBlockhash []byte      `protobuf:"bytes,3,opt,name=snapshot_blockhash,json=snapshotBlockhash,proto3" json:"snapshot_blockhash,omitempty"`
	ProposalsHash     []byte      `protobuf:"bytes,4,opt,name=proposals_hash,json=proposalsHash,proto3" json:"proposals_hash,omitempty"`
	VoteEndTime       uint64      `protobuf:"varint,5,opt,name=vote_end_time,json=voteEndTime,proto3" json:"vote_end_time,omitempty"`
	NullifierImtRoot  []byte      `protobuf:"bytes,6,opt,name=nullifier_imt_root,json=nullifierImtRoot,proto3" json:"nullifier_imt_root,omitempty"`
	NcRoot            []byte      `protobuf:"bytes,7,opt,name=nc_root,json=ncRoot,proto3" json:"nc_root,omitempty"`
	Proposals         []*Proposal `protobuf:"bytes,8,rep,name=proposals,proto3" json:"proposals,omitempty"`
	Description       string      `protobuf:"bytes,9,opt,name=description,proto3" json:"description,omitempty"`                           // Human-readable round description
	Title             string      `protobuf:"bytes,10,opt,name=title,proto3" json:"title,omitempty"`                                      // Short human-readable round title
	DiscussionUrl     string      `protobuf:"bytes,11,opt,name=discussion_url,json=discussionUrl,proto3" json:"discussion_url,omitempty"` // Overall forum discussion link for the vote round
	// contains filtered or unexported fields
}

MsgCreateVotingSession creates a new voting session. vote_round_id is computed on-chain as Poseidon(snapshot_height, snapshot_blockhash_lo, snapshot_blockhash_hi, proposals_hash_lo, proposals_hash_hi, vote_end_time, nullifier_imt_root, nc_root). The output is a canonical 32-byte Pallas Fp element. Creates the round in PENDING status; ea_pk is set when the per-round ceremony confirms.

func (*MsgCreateVotingSession) AcceptsTallyingRound

func (msg *MsgCreateVotingSession) AcceptsTallyingRound() bool

AcceptsTallyingRound returns false — session creation is unrelated to tallying.

func (*MsgCreateVotingSession) Descriptor deprecated

func (*MsgCreateVotingSession) Descriptor() ([]byte, []int)

Deprecated: Use MsgCreateVotingSession.ProtoReflect.Descriptor instead.

func (*MsgCreateVotingSession) GetCreator

func (x *MsgCreateVotingSession) GetCreator() string

func (*MsgCreateVotingSession) GetDescription

func (x *MsgCreateVotingSession) GetDescription() string

func (*MsgCreateVotingSession) GetDiscussionUrl added in v0.4.0

func (x *MsgCreateVotingSession) GetDiscussionUrl() string

func (*MsgCreateVotingSession) GetNcRoot

func (x *MsgCreateVotingSession) GetNcRoot() []byte

func (*MsgCreateVotingSession) GetNullifierImtRoot

func (x *MsgCreateVotingSession) GetNullifierImtRoot() []byte

func (*MsgCreateVotingSession) GetNullifierType

func (msg *MsgCreateVotingSession) GetNullifierType() NullifierType

GetNullifierType returns 0 for MsgCreateVotingSession (unused; guarded by len(nullifiers) > 0 check in the ante handler).

func (*MsgCreateVotingSession) GetNullifiers

func (msg *MsgCreateVotingSession) GetNullifiers() [][]byte

GetNullifiers returns nil for MsgCreateVotingSession (no nullifiers involved).

func (*MsgCreateVotingSession) GetProposals

func (x *MsgCreateVotingSession) GetProposals() []*Proposal

func (*MsgCreateVotingSession) GetProposalsHash

func (x *MsgCreateVotingSession) GetProposalsHash() []byte

func (*MsgCreateVotingSession) GetSnapshotBlockhash

func (x *MsgCreateVotingSession) GetSnapshotBlockhash() []byte

func (*MsgCreateVotingSession) GetSnapshotHeight

func (x *MsgCreateVotingSession) GetSnapshotHeight() uint64

func (*MsgCreateVotingSession) GetTitle

func (x *MsgCreateVotingSession) GetTitle() string

func (*MsgCreateVotingSession) GetVoteEndTime

func (x *MsgCreateVotingSession) GetVoteEndTime() uint64

func (*MsgCreateVotingSession) GetVoteRoundId

func (msg *MsgCreateVotingSession) GetVoteRoundId() []byte

GetVoteRoundId returns nil for MsgCreateVotingSession (round doesn't exist yet).

func (*MsgCreateVotingSession) ProtoMessage

func (*MsgCreateVotingSession) ProtoMessage()

func (*MsgCreateVotingSession) ProtoReflect

func (x *MsgCreateVotingSession) ProtoReflect() protoreflect.Message

func (*MsgCreateVotingSession) Reset

func (x *MsgCreateVotingSession) Reset()

func (*MsgCreateVotingSession) String

func (x *MsgCreateVotingSession) String() string

func (*MsgCreateVotingSession) ValidateBasic

func (msg *MsgCreateVotingSession) ValidateBasic() error

ValidateBasic performs stateless validation for MsgCreateVotingSession.

type MsgCreateVotingSessionResponse

type MsgCreateVotingSessionResponse struct {
	VoteRoundId []byte `protobuf:"bytes,1,opt,name=vote_round_id,json=voteRoundId,proto3" json:"vote_round_id,omitempty"`
	// contains filtered or unexported fields
}

func (*MsgCreateVotingSessionResponse) Descriptor deprecated

func (*MsgCreateVotingSessionResponse) Descriptor() ([]byte, []int)

Deprecated: Use MsgCreateVotingSessionResponse.ProtoReflect.Descriptor instead.

func (*MsgCreateVotingSessionResponse) GetVoteRoundId

func (x *MsgCreateVotingSessionResponse) GetVoteRoundId() []byte

func (*MsgCreateVotingSessionResponse) ProtoMessage

func (*MsgCreateVotingSessionResponse) ProtoMessage()

func (*MsgCreateVotingSessionResponse) ProtoReflect

func (*MsgCreateVotingSessionResponse) Reset

func (x *MsgCreateVotingSessionResponse) Reset()

func (*MsgCreateVotingSessionResponse) String

type MsgDelegateVote

type MsgDelegateVote struct {
	Rk                  []byte   `protobuf:"bytes,1,opt,name=rk,proto3" json:"rk,omitempty"`                                                                // Randomized spend auth key (32 bytes)
	SpendAuthSig        []byte   `protobuf:"bytes,2,opt,name=spend_auth_sig,json=spendAuthSig,proto3" json:"spend_auth_sig,omitempty"`                      // RedPallas signature
	SignedNoteNullifier []byte   `protobuf:"bytes,3,opt,name=signed_note_nullifier,json=signedNoteNullifier,proto3" json:"signed_note_nullifier,omitempty"` // Nullifier of the dummy signed note
	CmxNew              []byte   `protobuf:"bytes,4,opt,name=cmx_new,json=cmxNew,proto3" json:"cmx_new,omitempty"`                                          // Output note commitment
	VanCmx              []byte   `protobuf:"bytes,6,opt,name=van_cmx,json=vanCmx,proto3" json:"van_cmx,omitempty"`                                          // Vote authority note commitment
	GovNullifiers       [][]byte `protobuf:"bytes,7,rep,name=gov_nullifiers,json=govNullifiers,proto3" json:"gov_nullifiers,omitempty"`                     // Up to 5 governance nullifiers
	Proof               []byte   `protobuf:"bytes,8,opt,name=proof,proto3" json:"proof,omitempty"`                                                          // Halo2 ZKP #1
	VoteRoundId         []byte   `protobuf:"bytes,9,opt,name=vote_round_id,json=voteRoundId,proto3" json:"vote_round_id,omitempty"`
	Sighash             []byte   `protobuf:"bytes,10,opt,name=sighash,proto3" json:"sighash,omitempty"` // Client-provided sighash for RedPallas signature verification (32 bytes)
	// contains filtered or unexported fields
}

MsgDelegateVote corresponds to ZKP #1: delegation registration from keystone-signed action.

func (*MsgDelegateVote) AcceptsTallyingRound

func (msg *MsgDelegateVote) AcceptsTallyingRound() bool

AcceptsTallyingRound returns false — delegation requires ACTIVE status.

func (*MsgDelegateVote) Descriptor deprecated

func (*MsgDelegateVote) Descriptor() ([]byte, []int)

Deprecated: Use MsgDelegateVote.ProtoReflect.Descriptor instead.

func (*MsgDelegateVote) GetCmxNew

func (x *MsgDelegateVote) GetCmxNew() []byte

func (*MsgDelegateVote) GetGovNullifiers

func (x *MsgDelegateVote) GetGovNullifiers() [][]byte

func (*MsgDelegateVote) GetNullifierType

func (msg *MsgDelegateVote) GetNullifierType() NullifierType

GetNullifierType returns NullifierTypeGov for MsgDelegateVote.

func (*MsgDelegateVote) GetNullifiers

func (msg *MsgDelegateVote) GetNullifiers() [][]byte

GetNullifiers returns the nullifiers from a MsgDelegateVote.

func (*MsgDelegateVote) GetProof

func (x *MsgDelegateVote) GetProof() []byte

func (*MsgDelegateVote) GetRk

func (x *MsgDelegateVote) GetRk() []byte

func (*MsgDelegateVote) GetSighash

func (x *MsgDelegateVote) GetSighash() []byte

func (*MsgDelegateVote) GetSignedNoteNullifier

func (x *MsgDelegateVote) GetSignedNoteNullifier() []byte

func (*MsgDelegateVote) GetSpendAuthSig

func (x *MsgDelegateVote) GetSpendAuthSig() []byte

func (*MsgDelegateVote) GetVanCmx

func (x *MsgDelegateVote) GetVanCmx() []byte

func (*MsgDelegateVote) GetVoteRoundId

func (x *MsgDelegateVote) GetVoteRoundId() []byte

func (*MsgDelegateVote) ProtoMessage

func (*MsgDelegateVote) ProtoMessage()

func (*MsgDelegateVote) ProtoReflect

func (x *MsgDelegateVote) ProtoReflect() protoreflect.Message

func (*MsgDelegateVote) Reset

func (x *MsgDelegateVote) Reset()

func (*MsgDelegateVote) String

func (x *MsgDelegateVote) String() string

func (*MsgDelegateVote) ValidateBasic

func (msg *MsgDelegateVote) ValidateBasic() error

ValidateBasic performs stateless validation for MsgDelegateVote.

type MsgDelegateVoteResponse

type MsgDelegateVoteResponse struct {
	// contains filtered or unexported fields
}

func (*MsgDelegateVoteResponse) Descriptor deprecated

func (*MsgDelegateVoteResponse) Descriptor() ([]byte, []int)

Deprecated: Use MsgDelegateVoteResponse.ProtoReflect.Descriptor instead.

func (*MsgDelegateVoteResponse) ProtoMessage

func (*MsgDelegateVoteResponse) ProtoMessage()

func (*MsgDelegateVoteResponse) ProtoReflect

func (x *MsgDelegateVoteResponse) ProtoReflect() protoreflect.Message

func (*MsgDelegateVoteResponse) Reset

func (x *MsgDelegateVoteResponse) Reset()

func (*MsgDelegateVoteResponse) String

func (x *MsgDelegateVoteResponse) String() string

type MsgRegisterPallasKey

type MsgRegisterPallasKey struct {
	Creator  string `protobuf:"bytes,1,opt,name=creator,proto3" json:"creator,omitempty"`                   // Validator address
	PallasPk []byte `protobuf:"bytes,2,opt,name=pallas_pk,json=pallasPk,proto3" json:"pallas_pk,omitempty"` // Compressed Pallas point (32 bytes)
	// contains filtered or unexported fields
}

MsgRegisterPallasKey registers a validator's Pallas public key for the EA key ceremony.

func (*MsgRegisterPallasKey) Descriptor deprecated

func (*MsgRegisterPallasKey) Descriptor() ([]byte, []int)

Deprecated: Use MsgRegisterPallasKey.ProtoReflect.Descriptor instead.

func (*MsgRegisterPallasKey) GetCreator

func (x *MsgRegisterPallasKey) GetCreator() string

func (*MsgRegisterPallasKey) GetPallasPk

func (x *MsgRegisterPallasKey) GetPallasPk() []byte

func (*MsgRegisterPallasKey) ProtoMessage

func (*MsgRegisterPallasKey) ProtoMessage()

func (*MsgRegisterPallasKey) ProtoReflect

func (x *MsgRegisterPallasKey) ProtoReflect() protoreflect.Message

func (*MsgRegisterPallasKey) Reset

func (x *MsgRegisterPallasKey) Reset()

func (*MsgRegisterPallasKey) String

func (x *MsgRegisterPallasKey) String() string

type MsgRegisterPallasKeyResponse

type MsgRegisterPallasKeyResponse struct {
	// contains filtered or unexported fields
}

func (*MsgRegisterPallasKeyResponse) Descriptor deprecated

func (*MsgRegisterPallasKeyResponse) Descriptor() ([]byte, []int)

Deprecated: Use MsgRegisterPallasKeyResponse.ProtoReflect.Descriptor instead.

func (*MsgRegisterPallasKeyResponse) ProtoMessage

func (*MsgRegisterPallasKeyResponse) ProtoMessage()

func (*MsgRegisterPallasKeyResponse) ProtoReflect

func (*MsgRegisterPallasKeyResponse) Reset

func (x *MsgRegisterPallasKeyResponse) Reset()

func (*MsgRegisterPallasKeyResponse) String

type MsgRevealShare

type MsgRevealShare struct {
	ShareNullifier           []byte `protobuf:"bytes,1,opt,name=share_nullifier,json=shareNullifier,proto3" json:"share_nullifier,omitempty"`
	EncShare                 []byte `protobuf:"bytes,2,opt,name=enc_share,json=encShare,proto3" json:"enc_share,omitempty"` // 64 bytes: ElGamal ciphertext (C1 || C2, compressed Pallas points)
	ProposalId               uint32 `protobuf:"varint,3,opt,name=proposal_id,json=proposalId,proto3" json:"proposal_id,omitempty"`
	VoteDecision             uint32 `protobuf:"varint,4,opt,name=vote_decision,json=voteDecision,proto3" json:"vote_decision,omitempty"`
	Proof                    []byte `protobuf:"bytes,5,opt,name=proof,proto3" json:"proof,omitempty"`
	VoteRoundId              []byte `protobuf:"bytes,6,opt,name=vote_round_id,json=voteRoundId,proto3" json:"vote_round_id,omitempty"`
	VoteCommTreeAnchorHeight uint64 `` /* 140-byte string literal not displayed */
	// contains filtered or unexported fields
}

MsgRevealShare corresponds to ZKP #3: reveal vote share (server submits).

func (*MsgRevealShare) AcceptsTallyingRound

func (msg *MsgRevealShare) AcceptsTallyingRound() bool

AcceptsTallyingRound returns false — shares must land before the vote window closes. Accepting shares during TALLYING would corrupt the tally accumulator after partial decryptions have been committed.

func (*MsgRevealShare) Descriptor deprecated

func (*MsgRevealShare) Descriptor() ([]byte, []int)

Deprecated: Use MsgRevealShare.ProtoReflect.Descriptor instead.

func (*MsgRevealShare) GetEncShare

func (x *MsgRevealShare) GetEncShare() []byte

func (*MsgRevealShare) GetNullifierType

func (msg *MsgRevealShare) GetNullifierType() NullifierType

GetNullifierType returns NullifierTypeShare for MsgRevealShare.

func (*MsgRevealShare) GetNullifiers

func (msg *MsgRevealShare) GetNullifiers() [][]byte

GetNullifiers returns the nullifiers from a MsgRevealShare.

func (*MsgRevealShare) GetProof

func (x *MsgRevealShare) GetProof() []byte

func (*MsgRevealShare) GetProposalId

func (x *MsgRevealShare) GetProposalId() uint32

func (*MsgRevealShare) GetShareNullifier

func (x *MsgRevealShare) GetShareNullifier() []byte

func (*MsgRevealShare) GetVoteCommTreeAnchorHeight

func (x *MsgRevealShare) GetVoteCommTreeAnchorHeight() uint64

func (*MsgRevealShare) GetVoteDecision

func (x *MsgRevealShare) GetVoteDecision() uint32

func (*MsgRevealShare) GetVoteRoundId

func (x *MsgRevealShare) GetVoteRoundId() []byte

func (*MsgRevealShare) ProtoMessage

func (*MsgRevealShare) ProtoMessage()

func (*MsgRevealShare) ProtoReflect

func (x *MsgRevealShare) ProtoReflect() protoreflect.Message

func (*MsgRevealShare) Reset

func (x *MsgRevealShare) Reset()

func (*MsgRevealShare) String

func (x *MsgRevealShare) String() string

func (*MsgRevealShare) ValidateBasic

func (msg *MsgRevealShare) ValidateBasic() error

ValidateBasic performs stateless validation for MsgRevealShare.

type MsgRevealShareResponse

type MsgRevealShareResponse struct {
	// contains filtered or unexported fields
}

func (*MsgRevealShareResponse) Descriptor deprecated

func (*MsgRevealShareResponse) Descriptor() ([]byte, []int)

Deprecated: Use MsgRevealShareResponse.ProtoReflect.Descriptor instead.

func (*MsgRevealShareResponse) ProtoMessage

func (*MsgRevealShareResponse) ProtoMessage()

func (*MsgRevealShareResponse) ProtoReflect

func (x *MsgRevealShareResponse) ProtoReflect() protoreflect.Message

func (*MsgRevealShareResponse) Reset

func (x *MsgRevealShareResponse) Reset()

func (*MsgRevealShareResponse) String

func (x *MsgRevealShareResponse) String() string

type MsgRotatePallasKey added in v0.4.1

type MsgRotatePallasKey struct {
	Creator     string `protobuf:"bytes,1,opt,name=creator,proto3" json:"creator,omitempty"`                              // Validator account address (same as RegisterPallasKey)
	NewPallasPk []byte `protobuf:"bytes,2,opt,name=new_pallas_pk,json=newPallasPk,proto3" json:"new_pallas_pk,omitempty"` // New compressed Pallas point (32 bytes)
	// contains filtered or unexported fields
}

MsgRotatePallasKey replaces a validator's registered Pallas public key. Requires an existing registration and no in-flight ceremony for this validator.

func (*MsgRotatePallasKey) Descriptor deprecated added in v0.4.1

func (*MsgRotatePallasKey) Descriptor() ([]byte, []int)

Deprecated: Use MsgRotatePallasKey.ProtoReflect.Descriptor instead.

func (*MsgRotatePallasKey) GetCreator added in v0.4.1

func (x *MsgRotatePallasKey) GetCreator() string

func (*MsgRotatePallasKey) GetNewPallasPk added in v0.4.1

func (x *MsgRotatePallasKey) GetNewPallasPk() []byte

func (*MsgRotatePallasKey) ProtoMessage added in v0.4.1

func (*MsgRotatePallasKey) ProtoMessage()

func (*MsgRotatePallasKey) ProtoReflect added in v0.4.1

func (x *MsgRotatePallasKey) ProtoReflect() protoreflect.Message

func (*MsgRotatePallasKey) Reset added in v0.4.1

func (x *MsgRotatePallasKey) Reset()

func (*MsgRotatePallasKey) String added in v0.4.1

func (x *MsgRotatePallasKey) String() string

func (*MsgRotatePallasKey) ValidateBasic added in v0.4.1

func (msg *MsgRotatePallasKey) ValidateBasic() error

ValidateBasic performs stateless validation for MsgRotatePallasKey.

type MsgRotatePallasKeyResponse added in v0.4.1

type MsgRotatePallasKeyResponse struct {
	// contains filtered or unexported fields
}

func (*MsgRotatePallasKeyResponse) Descriptor deprecated added in v0.4.1

func (*MsgRotatePallasKeyResponse) Descriptor() ([]byte, []int)

Deprecated: Use MsgRotatePallasKeyResponse.ProtoReflect.Descriptor instead.

func (*MsgRotatePallasKeyResponse) ProtoMessage added in v0.4.1

func (*MsgRotatePallasKeyResponse) ProtoMessage()

func (*MsgRotatePallasKeyResponse) ProtoReflect added in v0.4.1

func (*MsgRotatePallasKeyResponse) Reset added in v0.4.1

func (x *MsgRotatePallasKeyResponse) Reset()

func (*MsgRotatePallasKeyResponse) String added in v0.4.1

func (x *MsgRotatePallasKeyResponse) String() string

type MsgServer

MsgServer is the server API for Msg service. All implementations must embed UnimplementedMsgServer for forward compatibility.

Msg defines the vote module's Msg service. NOTE: Vote transactions use ZKP + RedPallas authentication instead of standard Cosmos signatures. In Phase 5, transaction submission bypasses the Cosmos Tx envelope entirely; the Msg service is defined here for gRPC registration only.

type MsgSubmitPartialDecryption

type MsgSubmitPartialDecryption struct {
	VoteRoundId    []byte                    `protobuf:"bytes,1,opt,name=vote_round_id,json=voteRoundId,proto3" json:"vote_round_id,omitempty"`
	Creator        string                    `protobuf:"bytes,2,opt,name=creator,proto3" json:"creator,omitempty"`                                      // Validator operator address
	ValidatorIndex uint32                    `protobuf:"varint,3,opt,name=validator_index,json=validatorIndex,proto3" json:"validator_index,omitempty"` // 1-based index matching Shamir evaluation point
	Entries        []*PartialDecryptionEntry `protobuf:"bytes,4,rep,name=entries,proto3" json:"entries,omitempty"`
	// contains filtered or unexported fields
}

MsgSubmitPartialDecryption is submitted by a validator during the TALLYING phase. The validator computes D_i = share_i * C1 for each (proposal, decision) accumulator and submits all entries in a single message. In Step 1 there is no dleq_proof; that field is added in Step 2.

func (*MsgSubmitPartialDecryption) Descriptor deprecated

func (*MsgSubmitPartialDecryption) Descriptor() ([]byte, []int)

Deprecated: Use MsgSubmitPartialDecryption.ProtoReflect.Descriptor instead.

func (*MsgSubmitPartialDecryption) GetCreator

func (x *MsgSubmitPartialDecryption) GetCreator() string

func (*MsgSubmitPartialDecryption) GetEntries

func (*MsgSubmitPartialDecryption) GetValidatorIndex

func (x *MsgSubmitPartialDecryption) GetValidatorIndex() uint32

func (*MsgSubmitPartialDecryption) GetVoteRoundId

func (x *MsgSubmitPartialDecryption) GetVoteRoundId() []byte

func (*MsgSubmitPartialDecryption) ProtoMessage

func (*MsgSubmitPartialDecryption) ProtoMessage()

func (*MsgSubmitPartialDecryption) ProtoReflect

func (*MsgSubmitPartialDecryption) Reset

func (x *MsgSubmitPartialDecryption) Reset()

func (*MsgSubmitPartialDecryption) String

func (x *MsgSubmitPartialDecryption) String() string

type MsgSubmitPartialDecryptionResponse

type MsgSubmitPartialDecryptionResponse struct {
	// contains filtered or unexported fields
}

func (*MsgSubmitPartialDecryptionResponse) Descriptor deprecated

func (*MsgSubmitPartialDecryptionResponse) Descriptor() ([]byte, []int)

Deprecated: Use MsgSubmitPartialDecryptionResponse.ProtoReflect.Descriptor instead.

func (*MsgSubmitPartialDecryptionResponse) ProtoMessage

func (*MsgSubmitPartialDecryptionResponse) ProtoMessage()

func (*MsgSubmitPartialDecryptionResponse) ProtoReflect

func (*MsgSubmitPartialDecryptionResponse) Reset

func (*MsgSubmitPartialDecryptionResponse) String

type MsgSubmitTally

type MsgSubmitTally struct {
	VoteRoundId []byte        `protobuf:"bytes,1,opt,name=vote_round_id,json=voteRoundId,proto3" json:"vote_round_id,omitempty"`
	Creator     string        `protobuf:"bytes,2,opt,name=creator,proto3" json:"creator,omitempty"` // Must match the session creator
	Entries     []*TallyEntry `protobuf:"bytes,3,rep,name=entries,proto3" json:"entries,omitempty"` // One per (proposal_id, vote_decision) pair
	// contains filtered or unexported fields
}

MsgSubmitTally finalizes a voting session, transitioning it from TALLYING to FINALIZED. The election authority submits decrypted vote totals for each (proposal, decision) pair. Only the session creator (election authority) may submit this message.

func (*MsgSubmitTally) AcceptsTallyingRound

func (msg *MsgSubmitTally) AcceptsTallyingRound() bool

AcceptsTallyingRound returns true — submitting a tally requires TALLYING status.

func (*MsgSubmitTally) Descriptor deprecated

func (*MsgSubmitTally) Descriptor() ([]byte, []int)

Deprecated: Use MsgSubmitTally.ProtoReflect.Descriptor instead.

func (*MsgSubmitTally) GetCreator

func (x *MsgSubmitTally) GetCreator() string

func (*MsgSubmitTally) GetEntries

func (x *MsgSubmitTally) GetEntries() []*TallyEntry

func (*MsgSubmitTally) GetNullifierType

func (msg *MsgSubmitTally) GetNullifierType() NullifierType

GetNullifierType returns 0 for MsgSubmitTally (unused; no nullifiers).

func (*MsgSubmitTally) GetNullifiers

func (msg *MsgSubmitTally) GetNullifiers() [][]byte

GetNullifiers returns nil for MsgSubmitTally (no nullifiers involved).

func (*MsgSubmitTally) GetVoteRoundId

func (x *MsgSubmitTally) GetVoteRoundId() []byte

func (*MsgSubmitTally) ProtoMessage

func (*MsgSubmitTally) ProtoMessage()

func (*MsgSubmitTally) ProtoReflect

func (x *MsgSubmitTally) ProtoReflect() protoreflect.Message

func (*MsgSubmitTally) Reset

func (x *MsgSubmitTally) Reset()

func (*MsgSubmitTally) String

func (x *MsgSubmitTally) String() string

func (*MsgSubmitTally) ValidateBasic

func (msg *MsgSubmitTally) ValidateBasic() error

ValidateBasic performs stateless validation for MsgSubmitTally.

type MsgSubmitTallyResponse

type MsgSubmitTallyResponse struct {
	FinalizedEntries uint32 `protobuf:"varint,1,opt,name=finalized_entries,json=finalizedEntries,proto3" json:"finalized_entries,omitempty"` // Number of tally entries stored
	// contains filtered or unexported fields
}

func (*MsgSubmitTallyResponse) Descriptor deprecated

func (*MsgSubmitTallyResponse) Descriptor() ([]byte, []int)

Deprecated: Use MsgSubmitTallyResponse.ProtoReflect.Descriptor instead.

func (*MsgSubmitTallyResponse) GetFinalizedEntries

func (x *MsgSubmitTallyResponse) GetFinalizedEntries() uint32

func (*MsgSubmitTallyResponse) ProtoMessage

func (*MsgSubmitTallyResponse) ProtoMessage()

func (*MsgSubmitTallyResponse) ProtoReflect

func (x *MsgSubmitTallyResponse) ProtoReflect() protoreflect.Message

func (*MsgSubmitTallyResponse) Reset

func (x *MsgSubmitTallyResponse) Reset()

func (*MsgSubmitTallyResponse) String

func (x *MsgSubmitTallyResponse) String() string

type MsgUpdateVoteManagers added in v0.5.8

type MsgUpdateVoteManagers struct {
	Creator         string   `protobuf:"bytes,1,opt,name=creator,proto3" json:"creator,omitempty"`                                          // Sender address (must be in the current vote manager set)
	NewVoteManagers []string `protobuf:"bytes,2,rep,name=new_vote_managers,json=newVoteManagers,proto3" json:"new_vote_managers,omitempty"` // Full replacement set
	// contains filtered or unexported fields
}

MsgUpdateVoteManagers atomically replaces the vote-manager set with new_vote_managers. Callable by any current vote manager. Does NOT move balances — each vote manager holds their own funds (the bank-module per-account balance). Validation: new_vote_managers must be non-empty, each entry a valid bech32 address, and no duplicates (addresses normalized before compare).

func (*MsgUpdateVoteManagers) Descriptor deprecated added in v0.5.8

func (*MsgUpdateVoteManagers) Descriptor() ([]byte, []int)

Deprecated: Use MsgUpdateVoteManagers.ProtoReflect.Descriptor instead.

func (*MsgUpdateVoteManagers) GetCreator added in v0.5.8

func (x *MsgUpdateVoteManagers) GetCreator() string

func (*MsgUpdateVoteManagers) GetNewVoteManagers added in v0.5.8

func (x *MsgUpdateVoteManagers) GetNewVoteManagers() []string

func (*MsgUpdateVoteManagers) ProtoMessage added in v0.5.8

func (*MsgUpdateVoteManagers) ProtoMessage()

func (*MsgUpdateVoteManagers) ProtoReflect added in v0.5.8

func (x *MsgUpdateVoteManagers) ProtoReflect() protoreflect.Message

func (*MsgUpdateVoteManagers) Reset added in v0.5.8

func (x *MsgUpdateVoteManagers) Reset()

func (*MsgUpdateVoteManagers) String added in v0.5.8

func (x *MsgUpdateVoteManagers) String() string

type MsgUpdateVoteManagersResponse added in v0.5.8

type MsgUpdateVoteManagersResponse struct {
	// contains filtered or unexported fields
}

func (*MsgUpdateVoteManagersResponse) Descriptor deprecated added in v0.5.8

func (*MsgUpdateVoteManagersResponse) Descriptor() ([]byte, []int)

Deprecated: Use MsgUpdateVoteManagersResponse.ProtoReflect.Descriptor instead.

func (*MsgUpdateVoteManagersResponse) ProtoMessage added in v0.5.8

func (*MsgUpdateVoteManagersResponse) ProtoMessage()

func (*MsgUpdateVoteManagersResponse) ProtoReflect added in v0.5.8

func (*MsgUpdateVoteManagersResponse) Reset added in v0.5.8

func (x *MsgUpdateVoteManagersResponse) Reset()

func (*MsgUpdateVoteManagersResponse) String added in v0.5.8

type NullifierEntry

type NullifierEntry struct {
	Nullifier     []byte `protobuf:"bytes,1,opt,name=nullifier,proto3" json:"nullifier,omitempty"`
	NullifierType uint32 `protobuf:"varint,2,opt,name=nullifier_type,json=nullifierType,proto3" json:"nullifier_type,omitempty"` // 0=gov, 1=vote-authority-note, 2=share (maps to NullifierType)
	RoundId       []byte `protobuf:"bytes,3,opt,name=round_id,json=roundId,proto3" json:"round_id,omitempty"`                    // voting round this nullifier belongs to
	// contains filtered or unexported fields
}

NullifierEntry is a recorded nullifier, scoped by type and round.

func (*NullifierEntry) Descriptor deprecated

func (*NullifierEntry) Descriptor() ([]byte, []int)

Deprecated: Use NullifierEntry.ProtoReflect.Descriptor instead.

func (*NullifierEntry) GetNullifier

func (x *NullifierEntry) GetNullifier() []byte

func (*NullifierEntry) GetNullifierType

func (x *NullifierEntry) GetNullifierType() uint32

func (*NullifierEntry) GetRoundId

func (x *NullifierEntry) GetRoundId() []byte

func (*NullifierEntry) ProtoMessage

func (*NullifierEntry) ProtoMessage()

func (*NullifierEntry) ProtoReflect

func (x *NullifierEntry) ProtoReflect() protoreflect.Message

func (*NullifierEntry) Reset

func (x *NullifierEntry) Reset()

func (*NullifierEntry) String

func (x *NullifierEntry) String() string

type NullifierType

type NullifierType byte

NullifierType distinguishes the three independent nullifier sets per voting round.

const (
	// NullifierTypeGov identifies governance nullifiers recorded by MsgDelegateVote.
	NullifierTypeGov NullifierType = 0x00
	// NullifierTypeVoteAuthorityNote identifies vote-authority-note nullifiers recorded by MsgCastVote.
	NullifierTypeVoteAuthorityNote NullifierType = 0x01
	// NullifierTypeShare identifies share nullifiers recorded by MsgRevealShare.
	NullifierTypeShare NullifierType = 0x02
)

type OptionSummary

type OptionSummary struct {
	Index       uint32 `protobuf:"varint,1,opt,name=index,proto3" json:"index,omitempty"`
	Label       string `protobuf:"bytes,2,opt,name=label,proto3" json:"label,omitempty"`
	BallotCount uint64 `protobuf:"varint,3,opt,name=ballot_count,json=ballotCount,proto3" json:"ballot_count,omitempty"` // shares revealed for this (proposal, decision)
	TotalValue  uint64 `protobuf:"varint,4,opt,name=total_value,json=totalValue,proto3" json:"total_value,omitempty"`    // only populated when status = FINALIZED
	// contains filtered or unexported fields
}

OptionSummary is a denormalized view of a vote option for the VoteSummary query.

func (*OptionSummary) Descriptor deprecated

func (*OptionSummary) Descriptor() ([]byte, []int)

Deprecated: Use OptionSummary.ProtoReflect.Descriptor instead.

func (*OptionSummary) GetBallotCount

func (x *OptionSummary) GetBallotCount() uint64

func (*OptionSummary) GetIndex

func (x *OptionSummary) GetIndex() uint32

func (*OptionSummary) GetLabel

func (x *OptionSummary) GetLabel() string

func (*OptionSummary) GetTotalValue

func (x *OptionSummary) GetTotalValue() uint64

func (*OptionSummary) ProtoMessage

func (*OptionSummary) ProtoMessage()

func (*OptionSummary) ProtoReflect

func (x *OptionSummary) ProtoReflect() protoreflect.Message

func (*OptionSummary) Reset

func (x *OptionSummary) Reset()

func (*OptionSummary) String

func (x *OptionSummary) String() string

type PartialDecryptionEntry

type PartialDecryptionEntry struct {
	ProposalId     uint32 `protobuf:"varint,1,opt,name=proposal_id,json=proposalId,proto3" json:"proposal_id,omitempty"`
	VoteDecision   uint32 `protobuf:"varint,2,opt,name=vote_decision,json=voteDecision,proto3" json:"vote_decision,omitempty"`
	PartialDecrypt []byte `protobuf:"bytes,3,opt,name=partial_decrypt,json=partialDecrypt,proto3" json:"partial_decrypt,omitempty"` // 32 bytes: compressed Pallas point D_i = share_i * C1
	DleqProof      []byte `protobuf:"bytes,4,opt,name=dleq_proof,json=dleqProof,proto3" json:"dleq_proof,omitempty"`                // reserved — populated in Step 2
	// contains filtered or unexported fields
}

PartialDecryptionEntry holds one partial decryption D_i = share_i * C1 for a single (proposal_id, vote_decision) accumulator. dleq_proof is reserved for Step 2 (DLEQ correctness proofs) and must be empty in Step 1.

func (*PartialDecryptionEntry) Descriptor deprecated

func (*PartialDecryptionEntry) Descriptor() ([]byte, []int)

Deprecated: Use PartialDecryptionEntry.ProtoReflect.Descriptor instead.

func (*PartialDecryptionEntry) GetDleqProof

func (x *PartialDecryptionEntry) GetDleqProof() []byte

func (*PartialDecryptionEntry) GetPartialDecrypt

func (x *PartialDecryptionEntry) GetPartialDecrypt() []byte

func (*PartialDecryptionEntry) GetProposalId

func (x *PartialDecryptionEntry) GetProposalId() uint32

func (*PartialDecryptionEntry) GetVoteDecision

func (x *PartialDecryptionEntry) GetVoteDecision() uint32

func (*PartialDecryptionEntry) ProtoMessage

func (*PartialDecryptionEntry) ProtoMessage()

func (*PartialDecryptionEntry) ProtoReflect

func (x *PartialDecryptionEntry) ProtoReflect() protoreflect.Message

func (*PartialDecryptionEntry) Reset

func (x *PartialDecryptionEntry) Reset()

func (*PartialDecryptionEntry) String

func (x *PartialDecryptionEntry) String() string

type Proposal

type Proposal struct {
	Id          uint32        `protobuf:"varint,1,opt,name=id,proto3" json:"id,omitempty"`
	Title       string        `protobuf:"bytes,2,opt,name=title,proto3" json:"title,omitempty"`
	Description string        `protobuf:"bytes,3,opt,name=description,proto3" json:"description,omitempty"`
	Options     []*VoteOption `protobuf:"bytes,4,rep,name=options,proto3" json:"options,omitempty"`                      // 2-8 named choices
	ZipNumber   string        `protobuf:"bytes,5,opt,name=zip_number,json=zipNumber,proto3" json:"zip_number,omitempty"` // e.g. "ZIP-227"
	ForumUrl    string        `protobuf:"bytes,6,opt,name=forum_url,json=forumUrl,proto3" json:"forum_url,omitempty"`    // Per-proposal forum discussion link
	// contains filtered or unexported fields
}

Proposal represents a single ballot option within a voting session.

func (*Proposal) Descriptor deprecated

func (*Proposal) Descriptor() ([]byte, []int)

Deprecated: Use Proposal.ProtoReflect.Descriptor instead.

func (*Proposal) GetDescription

func (x *Proposal) GetDescription() string

func (*Proposal) GetForumUrl added in v0.4.0

func (x *Proposal) GetForumUrl() string

func (*Proposal) GetId

func (x *Proposal) GetId() uint32

func (*Proposal) GetOptions

func (x *Proposal) GetOptions() []*VoteOption

func (*Proposal) GetTitle

func (x *Proposal) GetTitle() string

func (*Proposal) GetZipNumber added in v0.4.0

func (x *Proposal) GetZipNumber() string

func (*Proposal) ProtoMessage

func (*Proposal) ProtoMessage()

func (*Proposal) ProtoReflect

func (x *Proposal) ProtoReflect() protoreflect.Message

func (*Proposal) Reset

func (x *Proposal) Reset()

func (*Proposal) String

func (x *Proposal) String() string

type ProposalSummary

type ProposalSummary struct {
	Id          uint32           `protobuf:"varint,1,opt,name=id,proto3" json:"id,omitempty"`
	Title       string           `protobuf:"bytes,2,opt,name=title,proto3" json:"title,omitempty"`
	Description string           `protobuf:"bytes,3,opt,name=description,proto3" json:"description,omitempty"`
	Options     []*OptionSummary `protobuf:"bytes,4,rep,name=options,proto3" json:"options,omitempty"`
	// contains filtered or unexported fields
}

ProposalSummary is a denormalized view of a proposal for the VoteSummary query.

func (*ProposalSummary) Descriptor deprecated

func (*ProposalSummary) Descriptor() ([]byte, []int)

Deprecated: Use ProposalSummary.ProtoReflect.Descriptor instead.

func (*ProposalSummary) GetDescription

func (x *ProposalSummary) GetDescription() string

func (*ProposalSummary) GetId

func (x *ProposalSummary) GetId() uint32

func (*ProposalSummary) GetOptions

func (x *ProposalSummary) GetOptions() []*OptionSummary

func (*ProposalSummary) GetTitle

func (x *ProposalSummary) GetTitle() string

func (*ProposalSummary) ProtoMessage

func (*ProposalSummary) ProtoMessage()

func (*ProposalSummary) ProtoReflect

func (x *ProposalSummary) ProtoReflect() protoreflect.Message

func (*ProposalSummary) Reset

func (x *ProposalSummary) Reset()

func (*ProposalSummary) String

func (x *ProposalSummary) String() string

type QueryActiveRoundRequest

type QueryActiveRoundRequest struct {
	// contains filtered or unexported fields
}

func (*QueryActiveRoundRequest) Descriptor deprecated

func (*QueryActiveRoundRequest) Descriptor() ([]byte, []int)

Deprecated: Use QueryActiveRoundRequest.ProtoReflect.Descriptor instead.

func (*QueryActiveRoundRequest) ProtoMessage

func (*QueryActiveRoundRequest) ProtoMessage()

func (*QueryActiveRoundRequest) ProtoReflect

func (x *QueryActiveRoundRequest) ProtoReflect() protoreflect.Message

func (*QueryActiveRoundRequest) Reset

func (x *QueryActiveRoundRequest) Reset()

func (*QueryActiveRoundRequest) String

func (x *QueryActiveRoundRequest) String() string

type QueryActiveRoundResponse

type QueryActiveRoundResponse struct {
	Round *VoteRound `protobuf:"bytes,1,opt,name=round,proto3" json:"round,omitempty"`
	// contains filtered or unexported fields
}

func (*QueryActiveRoundResponse) Descriptor deprecated

func (*QueryActiveRoundResponse) Descriptor() ([]byte, []int)

Deprecated: Use QueryActiveRoundResponse.ProtoReflect.Descriptor instead.

func (*QueryActiveRoundResponse) GetRound

func (x *QueryActiveRoundResponse) GetRound() *VoteRound

func (*QueryActiveRoundResponse) ProtoMessage

func (*QueryActiveRoundResponse) ProtoMessage()

func (*QueryActiveRoundResponse) ProtoReflect

func (x *QueryActiveRoundResponse) ProtoReflect() protoreflect.Message

func (*QueryActiveRoundResponse) Reset

func (x *QueryActiveRoundResponse) Reset()

func (*QueryActiveRoundResponse) String

func (x *QueryActiveRoundResponse) String() string

type QueryCeremonyStateRequest

type QueryCeremonyStateRequest struct {
	// contains filtered or unexported fields
}

func (*QueryCeremonyStateRequest) Descriptor deprecated

func (*QueryCeremonyStateRequest) Descriptor() ([]byte, []int)

Deprecated: Use QueryCeremonyStateRequest.ProtoReflect.Descriptor instead.

func (*QueryCeremonyStateRequest) ProtoMessage

func (*QueryCeremonyStateRequest) ProtoMessage()

func (*QueryCeremonyStateRequest) ProtoReflect

func (*QueryCeremonyStateRequest) Reset

func (x *QueryCeremonyStateRequest) Reset()

func (*QueryCeremonyStateRequest) String

func (x *QueryCeremonyStateRequest) String() string

type QueryCeremonyStateResponse

type QueryCeremonyStateResponse struct {
	Ceremony *CeremonyState `protobuf:"bytes,1,opt,name=ceremony,proto3" json:"ceremony,omitempty"`
	// contains filtered or unexported fields
}

func (*QueryCeremonyStateResponse) Descriptor deprecated

func (*QueryCeremonyStateResponse) Descriptor() ([]byte, []int)

Deprecated: Use QueryCeremonyStateResponse.ProtoReflect.Descriptor instead.

func (*QueryCeremonyStateResponse) GetCeremony

func (x *QueryCeremonyStateResponse) GetCeremony() *CeremonyState

func (*QueryCeremonyStateResponse) ProtoMessage

func (*QueryCeremonyStateResponse) ProtoMessage()

func (*QueryCeremonyStateResponse) ProtoReflect

func (*QueryCeremonyStateResponse) Reset

func (x *QueryCeremonyStateResponse) Reset()

func (*QueryCeremonyStateResponse) String

func (x *QueryCeremonyStateResponse) String() string

type QueryClient

type QueryClient interface {
	// CommitmentTreeAtHeight returns the commitment tree root at a specific anchor height.
	CommitmentTreeAtHeight(ctx context.Context, in *QueryCommitmentTreeRequest, opts ...grpc.CallOption) (*QueryCommitmentTreeResponse, error)
	// LatestCommitmentTree returns the latest commitment tree state.
	LatestCommitmentTree(ctx context.Context, in *QueryLatestTreeRequest, opts ...grpc.CallOption) (*QueryLatestTreeResponse, error)
	// VoteRound returns information about a specific vote round.
	VoteRound(ctx context.Context, in *QueryVoteRoundRequest, opts ...grpc.CallOption) (*QueryVoteRoundResponse, error)
	// ProposalTally returns the accumulated tally for a proposal within a vote round.
	ProposalTally(ctx context.Context, in *QueryProposalTallyRequest, opts ...grpc.CallOption) (*QueryProposalTallyResponse, error)
	// TallyResults returns finalized tally results for a vote round (after MsgSubmitTally).
	TallyResults(ctx context.Context, in *QueryTallyResultsRequest, opts ...grpc.CallOption) (*QueryTallyResultsResponse, error)
	// CommitmentLeaves returns the commitment tree leaves organized by block height.
	// Used by remote clients implementing TreeSyncApi to sync the vote commitment tree.
	CommitmentLeaves(ctx context.Context, in *QueryCommitmentLeavesRequest, opts ...grpc.CallOption) (*QueryCommitmentLeavesResponse, error)
	// ActiveRound returns the first active voting round, if any.
	// Iterates all stored rounds and returns the first with SESSION_STATUS_ACTIVE.
	ActiveRound(ctx context.Context, in *QueryActiveRoundRequest, opts ...grpc.CallOption) (*QueryActiveRoundResponse, error)
	// CeremonyState returns the current EA key ceremony lifecycle state.
	CeremonyState(ctx context.Context, in *QueryCeremonyStateRequest, opts ...grpc.CallOption) (*QueryCeremonyStateResponse, error)
	// VoteManagers returns the current vote-manager set (any member can
	// authorize vote-manager-gated operations — any-of-N semantics).
	VoteManagers(ctx context.Context, in *QueryVoteManagersRequest, opts ...grpc.CallOption) (*QueryVoteManagersResponse, error)
	// VoteSummary returns a denormalized view of a vote round with proposals,
	// ballot counts, and (if finalized) decrypted totals. Single query for frontend display.
	VoteSummary(ctx context.Context, in *QueryVoteSummaryRequest, opts ...grpc.CallOption) (*QueryVoteSummaryResponse, error)
	// ListRounds returns all stored vote rounds.
	ListRounds(ctx context.Context, in *QueryListRoundsRequest, opts ...grpc.CallOption) (*QueryListRoundsResponse, error)
	// PallasKeys returns all registered Pallas public keys from the global registry.
	PallasKeys(ctx context.Context, in *QueryPallasKeysRequest, opts ...grpc.CallOption) (*QueryPallasKeysResponse, error)
}

QueryClient is the client API for Query service.

For semantics around ctx use and closing/ending streaming RPCs, please refer to https://pkg.go.dev/google.golang.org/grpc/?tab=doc#ClientConn.NewStream.

Query defines the vote module's gRPC query service.

func NewQueryClient

func NewQueryClient(cc grpc.ClientConnInterface) QueryClient

type QueryCommitmentLeavesRequest

type QueryCommitmentLeavesRequest struct {
	FromHeight  uint64 `protobuf:"varint,1,opt,name=from_height,json=fromHeight,proto3" json:"from_height,omitempty"`
	ToHeight    uint64 `protobuf:"varint,2,opt,name=to_height,json=toHeight,proto3" json:"to_height,omitempty"`
	VoteRoundId []byte `protobuf:"bytes,3,opt,name=vote_round_id,json=voteRoundId,proto3" json:"vote_round_id,omitempty"`
	// contains filtered or unexported fields
}

func (*QueryCommitmentLeavesRequest) Descriptor deprecated

func (*QueryCommitmentLeavesRequest) Descriptor() ([]byte, []int)

Deprecated: Use QueryCommitmentLeavesRequest.ProtoReflect.Descriptor instead.

func (*QueryCommitmentLeavesRequest) GetFromHeight

func (x *QueryCommitmentLeavesRequest) GetFromHeight() uint64

func (*QueryCommitmentLeavesRequest) GetToHeight

func (x *QueryCommitmentLeavesRequest) GetToHeight() uint64

func (*QueryCommitmentLeavesRequest) GetVoteRoundId added in v0.3.0

func (x *QueryCommitmentLeavesRequest) GetVoteRoundId() []byte

func (*QueryCommitmentLeavesRequest) ProtoMessage

func (*QueryCommitmentLeavesRequest) ProtoMessage()

func (*QueryCommitmentLeavesRequest) ProtoReflect

func (*QueryCommitmentLeavesRequest) Reset

func (x *QueryCommitmentLeavesRequest) Reset()

func (*QueryCommitmentLeavesRequest) String

type QueryCommitmentLeavesResponse

type QueryCommitmentLeavesResponse struct {
	Blocks []*BlockCommitments `protobuf:"bytes,1,rep,name=blocks,proto3" json:"blocks,omitempty"`
	// contains filtered or unexported fields
}

func (*QueryCommitmentLeavesResponse) Descriptor deprecated

func (*QueryCommitmentLeavesResponse) Descriptor() ([]byte, []int)

Deprecated: Use QueryCommitmentLeavesResponse.ProtoReflect.Descriptor instead.

func (*QueryCommitmentLeavesResponse) GetBlocks

func (*QueryCommitmentLeavesResponse) ProtoMessage

func (*QueryCommitmentLeavesResponse) ProtoMessage()

func (*QueryCommitmentLeavesResponse) ProtoReflect

func (*QueryCommitmentLeavesResponse) Reset

func (x *QueryCommitmentLeavesResponse) Reset()

func (*QueryCommitmentLeavesResponse) String

type QueryCommitmentTreeRequest

type QueryCommitmentTreeRequest struct {
	Height      uint64 `protobuf:"varint,1,opt,name=height,proto3" json:"height,omitempty"`
	VoteRoundId []byte `protobuf:"bytes,2,opt,name=vote_round_id,json=voteRoundId,proto3" json:"vote_round_id,omitempty"`
	// contains filtered or unexported fields
}

func (*QueryCommitmentTreeRequest) Descriptor deprecated

func (*QueryCommitmentTreeRequest) Descriptor() ([]byte, []int)

Deprecated: Use QueryCommitmentTreeRequest.ProtoReflect.Descriptor instead.

func (*QueryCommitmentTreeRequest) GetHeight

func (x *QueryCommitmentTreeRequest) GetHeight() uint64

func (*QueryCommitmentTreeRequest) GetVoteRoundId added in v0.3.0

func (x *QueryCommitmentTreeRequest) GetVoteRoundId() []byte

func (*QueryCommitmentTreeRequest) ProtoMessage

func (*QueryCommitmentTreeRequest) ProtoMessage()

func (*QueryCommitmentTreeRequest) ProtoReflect

func (*QueryCommitmentTreeRequest) Reset

func (x *QueryCommitmentTreeRequest) Reset()

func (*QueryCommitmentTreeRequest) String

func (x *QueryCommitmentTreeRequest) String() string

type QueryCommitmentTreeResponse

type QueryCommitmentTreeResponse struct {
	Tree *CommitmentTreeState `protobuf:"bytes,1,opt,name=tree,proto3" json:"tree,omitempty"`
	// contains filtered or unexported fields
}

func (*QueryCommitmentTreeResponse) Descriptor deprecated

func (*QueryCommitmentTreeResponse) Descriptor() ([]byte, []int)

Deprecated: Use QueryCommitmentTreeResponse.ProtoReflect.Descriptor instead.

func (*QueryCommitmentTreeResponse) GetTree

func (*QueryCommitmentTreeResponse) ProtoMessage

func (*QueryCommitmentTreeResponse) ProtoMessage()

func (*QueryCommitmentTreeResponse) ProtoReflect

func (*QueryCommitmentTreeResponse) Reset

func (x *QueryCommitmentTreeResponse) Reset()

func (*QueryCommitmentTreeResponse) String

func (x *QueryCommitmentTreeResponse) String() string

type QueryLatestTreeRequest

type QueryLatestTreeRequest struct {
	VoteRoundId []byte `protobuf:"bytes,1,opt,name=vote_round_id,json=voteRoundId,proto3" json:"vote_round_id,omitempty"`
	// contains filtered or unexported fields
}

func (*QueryLatestTreeRequest) Descriptor deprecated

func (*QueryLatestTreeRequest) Descriptor() ([]byte, []int)

Deprecated: Use QueryLatestTreeRequest.ProtoReflect.Descriptor instead.

func (*QueryLatestTreeRequest) GetVoteRoundId added in v0.3.0

func (x *QueryLatestTreeRequest) GetVoteRoundId() []byte

func (*QueryLatestTreeRequest) ProtoMessage

func (*QueryLatestTreeRequest) ProtoMessage()

func (*QueryLatestTreeRequest) ProtoReflect

func (x *QueryLatestTreeRequest) ProtoReflect() protoreflect.Message

func (*QueryLatestTreeRequest) Reset

func (x *QueryLatestTreeRequest) Reset()

func (*QueryLatestTreeRequest) String

func (x *QueryLatestTreeRequest) String() string

type QueryLatestTreeResponse

type QueryLatestTreeResponse struct {
	Tree *CommitmentTreeState `protobuf:"bytes,1,opt,name=tree,proto3" json:"tree,omitempty"`
	// contains filtered or unexported fields
}

func (*QueryLatestTreeResponse) Descriptor deprecated

func (*QueryLatestTreeResponse) Descriptor() ([]byte, []int)

Deprecated: Use QueryLatestTreeResponse.ProtoReflect.Descriptor instead.

func (*QueryLatestTreeResponse) GetTree

func (*QueryLatestTreeResponse) ProtoMessage

func (*QueryLatestTreeResponse) ProtoMessage()

func (*QueryLatestTreeResponse) ProtoReflect

func (x *QueryLatestTreeResponse) ProtoReflect() protoreflect.Message

func (*QueryLatestTreeResponse) Reset

func (x *QueryLatestTreeResponse) Reset()

func (*QueryLatestTreeResponse) String

func (x *QueryLatestTreeResponse) String() string

type QueryListRoundsRequest

type QueryListRoundsRequest struct {
	// contains filtered or unexported fields
}

func (*QueryListRoundsRequest) Descriptor deprecated

func (*QueryListRoundsRequest) Descriptor() ([]byte, []int)

Deprecated: Use QueryListRoundsRequest.ProtoReflect.Descriptor instead.

func (*QueryListRoundsRequest) ProtoMessage

func (*QueryListRoundsRequest) ProtoMessage()

func (*QueryListRoundsRequest) ProtoReflect

func (x *QueryListRoundsRequest) ProtoReflect() protoreflect.Message

func (*QueryListRoundsRequest) Reset

func (x *QueryListRoundsRequest) Reset()

func (*QueryListRoundsRequest) String

func (x *QueryListRoundsRequest) String() string

type QueryListRoundsResponse

type QueryListRoundsResponse struct {
	Rounds []*VoteRound `protobuf:"bytes,1,rep,name=rounds,proto3" json:"rounds,omitempty"`
	// contains filtered or unexported fields
}

func (*QueryListRoundsResponse) Descriptor deprecated

func (*QueryListRoundsResponse) Descriptor() ([]byte, []int)

Deprecated: Use QueryListRoundsResponse.ProtoReflect.Descriptor instead.

func (*QueryListRoundsResponse) GetRounds

func (x *QueryListRoundsResponse) GetRounds() []*VoteRound

func (*QueryListRoundsResponse) ProtoMessage

func (*QueryListRoundsResponse) ProtoMessage()

func (*QueryListRoundsResponse) ProtoReflect

func (x *QueryListRoundsResponse) ProtoReflect() protoreflect.Message

func (*QueryListRoundsResponse) Reset

func (x *QueryListRoundsResponse) Reset()

func (*QueryListRoundsResponse) String

func (x *QueryListRoundsResponse) String() string

type QueryPallasKeysRequest

type QueryPallasKeysRequest struct {
	// contains filtered or unexported fields
}

func (*QueryPallasKeysRequest) Descriptor deprecated

func (*QueryPallasKeysRequest) Descriptor() ([]byte, []int)

Deprecated: Use QueryPallasKeysRequest.ProtoReflect.Descriptor instead.

func (*QueryPallasKeysRequest) ProtoMessage

func (*QueryPallasKeysRequest) ProtoMessage()

func (*QueryPallasKeysRequest) ProtoReflect

func (x *QueryPallasKeysRequest) ProtoReflect() protoreflect.Message

func (*QueryPallasKeysRequest) Reset

func (x *QueryPallasKeysRequest) Reset()

func (*QueryPallasKeysRequest) String

func (x *QueryPallasKeysRequest) String() string

type QueryPallasKeysResponse

type QueryPallasKeysResponse struct {
	Validators []*ValidatorPallasKey `protobuf:"bytes,1,rep,name=validators,proto3" json:"validators,omitempty"`
	// contains filtered or unexported fields
}

func (*QueryPallasKeysResponse) Descriptor deprecated

func (*QueryPallasKeysResponse) Descriptor() ([]byte, []int)

Deprecated: Use QueryPallasKeysResponse.ProtoReflect.Descriptor instead.

func (*QueryPallasKeysResponse) GetValidators

func (x *QueryPallasKeysResponse) GetValidators() []*ValidatorPallasKey

func (*QueryPallasKeysResponse) ProtoMessage

func (*QueryPallasKeysResponse) ProtoMessage()

func (*QueryPallasKeysResponse) ProtoReflect

func (x *QueryPallasKeysResponse) ProtoReflect() protoreflect.Message

func (*QueryPallasKeysResponse) Reset

func (x *QueryPallasKeysResponse) Reset()

func (*QueryPallasKeysResponse) String

func (x *QueryPallasKeysResponse) String() string

type QueryProposalTallyRequest

type QueryProposalTallyRequest struct {
	VoteRoundId []byte `protobuf:"bytes,1,opt,name=vote_round_id,json=voteRoundId,proto3" json:"vote_round_id,omitempty"`
	ProposalId  uint32 `protobuf:"varint,2,opt,name=proposal_id,json=proposalId,proto3" json:"proposal_id,omitempty"`
	// contains filtered or unexported fields
}

func (*QueryProposalTallyRequest) Descriptor deprecated

func (*QueryProposalTallyRequest) Descriptor() ([]byte, []int)

Deprecated: Use QueryProposalTallyRequest.ProtoReflect.Descriptor instead.

func (*QueryProposalTallyRequest) GetProposalId

func (x *QueryProposalTallyRequest) GetProposalId() uint32

func (*QueryProposalTallyRequest) GetVoteRoundId

func (x *QueryProposalTallyRequest) GetVoteRoundId() []byte

func (*QueryProposalTallyRequest) ProtoMessage

func (*QueryProposalTallyRequest) ProtoMessage()

func (*QueryProposalTallyRequest) ProtoReflect

func (*QueryProposalTallyRequest) Reset

func (x *QueryProposalTallyRequest) Reset()

func (*QueryProposalTallyRequest) String

func (x *QueryProposalTallyRequest) String() string

type QueryProposalTallyResponse

type QueryProposalTallyResponse struct {

	// Mapping from vote_decision to serialized ElGamal ciphertext (64 bytes each).
	Tally map[uint32][]byte `` /* 138-byte string literal not displayed */
	// contains filtered or unexported fields
}

func (*QueryProposalTallyResponse) Descriptor deprecated

func (*QueryProposalTallyResponse) Descriptor() ([]byte, []int)

Deprecated: Use QueryProposalTallyResponse.ProtoReflect.Descriptor instead.

func (*QueryProposalTallyResponse) GetTally

func (x *QueryProposalTallyResponse) GetTally() map[uint32][]byte

func (*QueryProposalTallyResponse) ProtoMessage

func (*QueryProposalTallyResponse) ProtoMessage()

func (*QueryProposalTallyResponse) ProtoReflect

func (*QueryProposalTallyResponse) Reset

func (x *QueryProposalTallyResponse) Reset()

func (*QueryProposalTallyResponse) String

func (x *QueryProposalTallyResponse) String() string

type QueryServer

type QueryServer interface {
	// CommitmentTreeAtHeight returns the commitment tree root at a specific anchor height.
	CommitmentTreeAtHeight(context.Context, *QueryCommitmentTreeRequest) (*QueryCommitmentTreeResponse, error)
	// LatestCommitmentTree returns the latest commitment tree state.
	LatestCommitmentTree(context.Context, *QueryLatestTreeRequest) (*QueryLatestTreeResponse, error)
	// VoteRound returns information about a specific vote round.
	VoteRound(context.Context, *QueryVoteRoundRequest) (*QueryVoteRoundResponse, error)
	// ProposalTally returns the accumulated tally for a proposal within a vote round.
	ProposalTally(context.Context, *QueryProposalTallyRequest) (*QueryProposalTallyResponse, error)
	// TallyResults returns finalized tally results for a vote round (after MsgSubmitTally).
	TallyResults(context.Context, *QueryTallyResultsRequest) (*QueryTallyResultsResponse, error)
	// CommitmentLeaves returns the commitment tree leaves organized by block height.
	// Used by remote clients implementing TreeSyncApi to sync the vote commitment tree.
	CommitmentLeaves(context.Context, *QueryCommitmentLeavesRequest) (*QueryCommitmentLeavesResponse, error)
	// ActiveRound returns the first active voting round, if any.
	// Iterates all stored rounds and returns the first with SESSION_STATUS_ACTIVE.
	ActiveRound(context.Context, *QueryActiveRoundRequest) (*QueryActiveRoundResponse, error)
	// CeremonyState returns the current EA key ceremony lifecycle state.
	CeremonyState(context.Context, *QueryCeremonyStateRequest) (*QueryCeremonyStateResponse, error)
	// VoteManagers returns the current vote-manager set (any member can
	// authorize vote-manager-gated operations — any-of-N semantics).
	VoteManagers(context.Context, *QueryVoteManagersRequest) (*QueryVoteManagersResponse, error)
	// VoteSummary returns a denormalized view of a vote round with proposals,
	// ballot counts, and (if finalized) decrypted totals. Single query for frontend display.
	VoteSummary(context.Context, *QueryVoteSummaryRequest) (*QueryVoteSummaryResponse, error)
	// ListRounds returns all stored vote rounds.
	ListRounds(context.Context, *QueryListRoundsRequest) (*QueryListRoundsResponse, error)
	// PallasKeys returns all registered Pallas public keys from the global registry.
	PallasKeys(context.Context, *QueryPallasKeysRequest) (*QueryPallasKeysResponse, error)
	// contains filtered or unexported methods
}

QueryServer is the server API for Query service. All implementations must embed UnimplementedQueryServer for forward compatibility.

Query defines the vote module's gRPC query service.

type QueryTallyResultsRequest

type QueryTallyResultsRequest struct {
	VoteRoundId []byte `protobuf:"bytes,1,opt,name=vote_round_id,json=voteRoundId,proto3" json:"vote_round_id,omitempty"`
	// contains filtered or unexported fields
}

func (*QueryTallyResultsRequest) Descriptor deprecated

func (*QueryTallyResultsRequest) Descriptor() ([]byte, []int)

Deprecated: Use QueryTallyResultsRequest.ProtoReflect.Descriptor instead.

func (*QueryTallyResultsRequest) GetVoteRoundId

func (x *QueryTallyResultsRequest) GetVoteRoundId() []byte

func (*QueryTallyResultsRequest) ProtoMessage

func (*QueryTallyResultsRequest) ProtoMessage()

func (*QueryTallyResultsRequest) ProtoReflect

func (x *QueryTallyResultsRequest) ProtoReflect() protoreflect.Message

func (*QueryTallyResultsRequest) Reset

func (x *QueryTallyResultsRequest) Reset()

func (*QueryTallyResultsRequest) String

func (x *QueryTallyResultsRequest) String() string

type QueryTallyResultsResponse

type QueryTallyResultsResponse struct {
	Results []*TallyResult `protobuf:"bytes,1,rep,name=results,proto3" json:"results,omitempty"`
	// contains filtered or unexported fields
}

func (*QueryTallyResultsResponse) Descriptor deprecated

func (*QueryTallyResultsResponse) Descriptor() ([]byte, []int)

Deprecated: Use QueryTallyResultsResponse.ProtoReflect.Descriptor instead.

func (*QueryTallyResultsResponse) GetResults

func (x *QueryTallyResultsResponse) GetResults() []*TallyResult

func (*QueryTallyResultsResponse) ProtoMessage

func (*QueryTallyResultsResponse) ProtoMessage()

func (*QueryTallyResultsResponse) ProtoReflect

func (*QueryTallyResultsResponse) Reset

func (x *QueryTallyResultsResponse) Reset()

func (*QueryTallyResultsResponse) String

func (x *QueryTallyResultsResponse) String() string

type QueryVoteManagersRequest added in v0.5.8

type QueryVoteManagersRequest struct {
	// contains filtered or unexported fields
}

func (*QueryVoteManagersRequest) Descriptor deprecated added in v0.5.8

func (*QueryVoteManagersRequest) Descriptor() ([]byte, []int)

Deprecated: Use QueryVoteManagersRequest.ProtoReflect.Descriptor instead.

func (*QueryVoteManagersRequest) ProtoMessage added in v0.5.8

func (*QueryVoteManagersRequest) ProtoMessage()

func (*QueryVoteManagersRequest) ProtoReflect added in v0.5.8

func (x *QueryVoteManagersRequest) ProtoReflect() protoreflect.Message

func (*QueryVoteManagersRequest) Reset added in v0.5.8

func (x *QueryVoteManagersRequest) Reset()

func (*QueryVoteManagersRequest) String added in v0.5.8

func (x *QueryVoteManagersRequest) String() string

type QueryVoteManagersResponse added in v0.5.8

type QueryVoteManagersResponse struct {
	VoteManagerAddresses []string `protobuf:"bytes,1,rep,name=vote_manager_addresses,json=voteManagerAddresses,proto3" json:"vote_manager_addresses,omitempty"`
	// contains filtered or unexported fields
}

func (*QueryVoteManagersResponse) Descriptor deprecated added in v0.5.8

func (*QueryVoteManagersResponse) Descriptor() ([]byte, []int)

Deprecated: Use QueryVoteManagersResponse.ProtoReflect.Descriptor instead.

func (*QueryVoteManagersResponse) GetVoteManagerAddresses added in v0.5.8

func (x *QueryVoteManagersResponse) GetVoteManagerAddresses() []string

func (*QueryVoteManagersResponse) ProtoMessage added in v0.5.8

func (*QueryVoteManagersResponse) ProtoMessage()

func (*QueryVoteManagersResponse) ProtoReflect added in v0.5.8

func (*QueryVoteManagersResponse) Reset added in v0.5.8

func (x *QueryVoteManagersResponse) Reset()

func (*QueryVoteManagersResponse) String added in v0.5.8

func (x *QueryVoteManagersResponse) String() string

type QueryVoteRoundRequest

type QueryVoteRoundRequest struct {
	VoteRoundId []byte `protobuf:"bytes,1,opt,name=vote_round_id,json=voteRoundId,proto3" json:"vote_round_id,omitempty"`
	// contains filtered or unexported fields
}

func (*QueryVoteRoundRequest) Descriptor deprecated

func (*QueryVoteRoundRequest) Descriptor() ([]byte, []int)

Deprecated: Use QueryVoteRoundRequest.ProtoReflect.Descriptor instead.

func (*QueryVoteRoundRequest) GetVoteRoundId

func (x *QueryVoteRoundRequest) GetVoteRoundId() []byte

func (*QueryVoteRoundRequest) ProtoMessage

func (*QueryVoteRoundRequest) ProtoMessage()

func (*QueryVoteRoundRequest) ProtoReflect

func (x *QueryVoteRoundRequest) ProtoReflect() protoreflect.Message

func (*QueryVoteRoundRequest) Reset

func (x *QueryVoteRoundRequest) Reset()

func (*QueryVoteRoundRequest) String

func (x *QueryVoteRoundRequest) String() string

type QueryVoteRoundResponse

type QueryVoteRoundResponse struct {
	Round *VoteRound `protobuf:"bytes,1,opt,name=round,proto3" json:"round,omitempty"`
	// contains filtered or unexported fields
}

func (*QueryVoteRoundResponse) Descriptor deprecated

func (*QueryVoteRoundResponse) Descriptor() ([]byte, []int)

Deprecated: Use QueryVoteRoundResponse.ProtoReflect.Descriptor instead.

func (*QueryVoteRoundResponse) GetRound

func (x *QueryVoteRoundResponse) GetRound() *VoteRound

func (*QueryVoteRoundResponse) ProtoMessage

func (*QueryVoteRoundResponse) ProtoMessage()

func (*QueryVoteRoundResponse) ProtoReflect

func (x *QueryVoteRoundResponse) ProtoReflect() protoreflect.Message

func (*QueryVoteRoundResponse) Reset

func (x *QueryVoteRoundResponse) Reset()

func (*QueryVoteRoundResponse) String

func (x *QueryVoteRoundResponse) String() string

type QueryVoteSummaryRequest

type QueryVoteSummaryRequest struct {
	VoteRoundId []byte `protobuf:"bytes,1,opt,name=vote_round_id,json=voteRoundId,proto3" json:"vote_round_id,omitempty"`
	// contains filtered or unexported fields
}

func (*QueryVoteSummaryRequest) Descriptor deprecated

func (*QueryVoteSummaryRequest) Descriptor() ([]byte, []int)

Deprecated: Use QueryVoteSummaryRequest.ProtoReflect.Descriptor instead.

func (*QueryVoteSummaryRequest) GetVoteRoundId

func (x *QueryVoteSummaryRequest) GetVoteRoundId() []byte

func (*QueryVoteSummaryRequest) ProtoMessage

func (*QueryVoteSummaryRequest) ProtoMessage()

func (*QueryVoteSummaryRequest) ProtoReflect

func (x *QueryVoteSummaryRequest) ProtoReflect() protoreflect.Message

func (*QueryVoteSummaryRequest) Reset

func (x *QueryVoteSummaryRequest) Reset()

func (*QueryVoteSummaryRequest) String

func (x *QueryVoteSummaryRequest) String() string

type QueryVoteSummaryResponse

type QueryVoteSummaryResponse struct {
	VoteRoundId []byte             `protobuf:"bytes,1,opt,name=vote_round_id,json=voteRoundId,proto3" json:"vote_round_id,omitempty"`
	Status      SessionStatus      `protobuf:"varint,2,opt,name=status,proto3,enum=svote.v1.SessionStatus" json:"status,omitempty"`
	Description string             `protobuf:"bytes,3,opt,name=description,proto3" json:"description,omitempty"`
	VoteEndTime uint64             `protobuf:"varint,4,opt,name=vote_end_time,json=voteEndTime,proto3" json:"vote_end_time,omitempty"`
	Proposals   []*ProposalSummary `protobuf:"bytes,5,rep,name=proposals,proto3" json:"proposals,omitempty"`
	// contains filtered or unexported fields
}

func (*QueryVoteSummaryResponse) Descriptor deprecated

func (*QueryVoteSummaryResponse) Descriptor() ([]byte, []int)

Deprecated: Use QueryVoteSummaryResponse.ProtoReflect.Descriptor instead.

func (*QueryVoteSummaryResponse) GetDescription

func (x *QueryVoteSummaryResponse) GetDescription() string

func (*QueryVoteSummaryResponse) GetProposals

func (x *QueryVoteSummaryResponse) GetProposals() []*ProposalSummary

func (*QueryVoteSummaryResponse) GetStatus

func (x *QueryVoteSummaryResponse) GetStatus() SessionStatus

func (*QueryVoteSummaryResponse) GetVoteEndTime

func (x *QueryVoteSummaryResponse) GetVoteEndTime() uint64

func (*QueryVoteSummaryResponse) GetVoteRoundId

func (x *QueryVoteSummaryResponse) GetVoteRoundId() []byte

func (*QueryVoteSummaryResponse) ProtoMessage

func (*QueryVoteSummaryResponse) ProtoMessage()

func (*QueryVoteSummaryResponse) ProtoReflect

func (x *QueryVoteSummaryResponse) ProtoReflect() protoreflect.Message

func (*QueryVoteSummaryResponse) Reset

func (x *QueryVoteSummaryResponse) Reset()

func (*QueryVoteSummaryResponse) String

func (x *QueryVoteSummaryResponse) String() string

type SessionStatus

type SessionStatus int32

SessionStatus represents the lifecycle state of a voting session.

const (
	SessionStatus_SESSION_STATUS_UNSPECIFIED SessionStatus = 0
	SessionStatus_SESSION_STATUS_ACTIVE      SessionStatus = 1
	SessionStatus_SESSION_STATUS_TALLYING    SessionStatus = 2
	SessionStatus_SESSION_STATUS_FINALIZED   SessionStatus = 3
	SessionStatus_SESSION_STATUS_PENDING     SessionStatus = 4 // Ceremony in progress, not yet active
)

func (SessionStatus) Descriptor

func (SessionStatus) Enum

func (x SessionStatus) Enum() *SessionStatus

func (SessionStatus) EnumDescriptor deprecated

func (SessionStatus) EnumDescriptor() ([]byte, []int)

Deprecated: Use SessionStatus.Descriptor instead.

func (SessionStatus) Number

func (SessionStatus) String

func (x SessionStatus) String() string

func (SessionStatus) Type

type TallyEntry

type TallyEntry struct {
	ProposalId      uint32 `protobuf:"varint,1,opt,name=proposal_id,json=proposalId,proto3" json:"proposal_id,omitempty"`
	VoteDecision    uint32 `protobuf:"varint,2,opt,name=vote_decision,json=voteDecision,proto3" json:"vote_decision,omitempty"`
	TotalValue      uint64 `protobuf:"varint,3,opt,name=total_value,json=totalValue,proto3" json:"total_value,omitempty"`               // Decrypted aggregate (zatoshi)
	DecryptionProof []byte `protobuf:"bytes,4,opt,name=decryption_proof,json=decryptionProof,proto3" json:"decryption_proof,omitempty"` // Chaum-Pedersen DLEQ proof (reserved for future use)
	// contains filtered or unexported fields
}

TallyEntry contains the decrypted vote total for one (proposal, decision) pair.

func (*TallyEntry) Descriptor deprecated

func (*TallyEntry) Descriptor() ([]byte, []int)

Deprecated: Use TallyEntry.ProtoReflect.Descriptor instead.

func (*TallyEntry) GetDecryptionProof

func (x *TallyEntry) GetDecryptionProof() []byte

func (*TallyEntry) GetProposalId

func (x *TallyEntry) GetProposalId() uint32

func (*TallyEntry) GetTotalValue

func (x *TallyEntry) GetTotalValue() uint64

func (*TallyEntry) GetVoteDecision

func (x *TallyEntry) GetVoteDecision() uint32

func (*TallyEntry) ProtoMessage

func (*TallyEntry) ProtoMessage()

func (*TallyEntry) ProtoReflect

func (x *TallyEntry) ProtoReflect() protoreflect.Message

func (*TallyEntry) Reset

func (x *TallyEntry) Reset()

func (*TallyEntry) String

func (x *TallyEntry) String() string

type TallyResult

type TallyResult struct {
	VoteRoundId  []byte `protobuf:"bytes,1,opt,name=vote_round_id,json=voteRoundId,proto3" json:"vote_round_id,omitempty"`
	ProposalId   uint32 `protobuf:"varint,2,opt,name=proposal_id,json=proposalId,proto3" json:"proposal_id,omitempty"`
	VoteDecision uint32 `protobuf:"varint,3,opt,name=vote_decision,json=voteDecision,proto3" json:"vote_decision,omitempty"`
	TotalValue   uint64 `protobuf:"varint,4,opt,name=total_value,json=totalValue,proto3" json:"total_value,omitempty"` // Decrypted aggregate (zatoshi)
	// contains filtered or unexported fields
}

TallyResult stores a finalized vote total for one (round, proposal, decision) tuple. Written by MsgSubmitTally, read by the TallyResults query.

func (*TallyResult) Descriptor deprecated

func (*TallyResult) Descriptor() ([]byte, []int)

Deprecated: Use TallyResult.ProtoReflect.Descriptor instead.

func (*TallyResult) GetProposalId

func (x *TallyResult) GetProposalId() uint32

func (*TallyResult) GetTotalValue

func (x *TallyResult) GetTotalValue() uint64

func (*TallyResult) GetVoteDecision

func (x *TallyResult) GetVoteDecision() uint32

func (*TallyResult) GetVoteRoundId

func (x *TallyResult) GetVoteRoundId() []byte

func (*TallyResult) ProtoMessage

func (*TallyResult) ProtoMessage()

func (*TallyResult) ProtoReflect

func (x *TallyResult) ProtoReflect() protoreflect.Message

func (*TallyResult) Reset

func (x *TallyResult) Reset()

func (*TallyResult) String

func (x *TallyResult) String() string

type UnimplementedMsgServer

type UnimplementedMsgServer struct{}

UnimplementedMsgServer must be embedded to have forward compatible implementations.

NOTE: this should be embedded by value instead of pointer to avoid a nil pointer dereference when methods are called.

func (UnimplementedMsgServer) AuthorizedSend added in v0.3.0

func (UnimplementedMsgServer) CastVote

func (UnimplementedMsgServer) ContributeDKG added in v0.4.0

func (UnimplementedMsgServer) DelegateVote

func (UnimplementedMsgServer) RevealShare

func (UnimplementedMsgServer) RotatePallasKey added in v0.4.1

func (UnimplementedMsgServer) SubmitTally

func (UnimplementedMsgServer) UpdateVoteManagers added in v0.5.8

type UnimplementedQueryServer

type UnimplementedQueryServer struct{}

UnimplementedQueryServer must be embedded to have forward compatible implementations.

NOTE: this should be embedded by value instead of pointer to avoid a nil pointer dereference when methods are called.

func (UnimplementedQueryServer) LatestCommitmentTree

func (UnimplementedQueryServer) VoteManagers added in v0.5.8

func (UnimplementedQueryServer) VoteRound

type UnsafeMsgServer

type UnsafeMsgServer interface {
	// contains filtered or unexported methods
}

UnsafeMsgServer may be embedded to opt out of forward compatibility for this service. Use of this interface is not recommended, as added methods to MsgServer will result in compilation errors.

type UnsafeQueryServer

type UnsafeQueryServer interface {
	// contains filtered or unexported methods
}

UnsafeQueryServer may be embedded to opt out of forward compatibility for this service. Use of this interface is not recommended, as added methods to QueryServer will result in compilation errors.

type ValidatorPallasKey

type ValidatorPallasKey struct {
	ValidatorAddress string `protobuf:"bytes,1,opt,name=validator_address,json=validatorAddress,proto3" json:"validator_address,omitempty"`
	PallasPk         []byte `protobuf:"bytes,2,opt,name=pallas_pk,json=pallasPk,proto3" json:"pallas_pk,omitempty"` // Compressed Pallas point (32 bytes)
	// shamir_index is the original 1-based Shamir evaluation point f(shamir_index)
	// assigned to this validator when the round ceremony was created. It is set
	// once at round creation and never changed, even when non-acking validators
	// are stripped from CeremonyValidators by StripNonAckersFromRound. Partial
	// decrypt injectors and the SubmitPartialDecryption handler must use this
	// field for Lagrange interpolation indices, not the post-stripping array position.
	ShamirIndex uint32 `protobuf:"varint,3,opt,name=shamir_index,json=shamirIndex,proto3" json:"shamir_index,omitempty"`
	// contains filtered or unexported fields
}

ValidatorPallasKey records a validator's registered Pallas public key.

func (*ValidatorPallasKey) Descriptor deprecated

func (*ValidatorPallasKey) Descriptor() ([]byte, []int)

Deprecated: Use ValidatorPallasKey.ProtoReflect.Descriptor instead.

func (*ValidatorPallasKey) GetPallasPk

func (x *ValidatorPallasKey) GetPallasPk() []byte

func (*ValidatorPallasKey) GetShamirIndex

func (x *ValidatorPallasKey) GetShamirIndex() uint32

func (*ValidatorPallasKey) GetValidatorAddress

func (x *ValidatorPallasKey) GetValidatorAddress() string

func (*ValidatorPallasKey) ProtoMessage

func (*ValidatorPallasKey) ProtoMessage()

func (*ValidatorPallasKey) ProtoReflect

func (x *ValidatorPallasKey) ProtoReflect() protoreflect.Message

func (*ValidatorPallasKey) Reset

func (x *ValidatorPallasKey) Reset()

func (*ValidatorPallasKey) String

func (x *ValidatorPallasKey) String() string

type VoteManagerSet added in v0.5.8

type VoteManagerSet struct {
	Addresses []string `protobuf:"bytes,1,rep,name=addresses,proto3" json:"addresses,omitempty"`
	// contains filtered or unexported fields
}

VoteManagerSet stores the vote-manager addresses. Any-of-N: any member may authorize vote-manager-gated operations. See README for the full rationale.

func (*VoteManagerSet) Descriptor deprecated added in v0.5.8

func (*VoteManagerSet) Descriptor() ([]byte, []int)

Deprecated: Use VoteManagerSet.ProtoReflect.Descriptor instead.

func (*VoteManagerSet) GetAddresses added in v0.5.8

func (x *VoteManagerSet) GetAddresses() []string

func (*VoteManagerSet) ProtoMessage added in v0.5.8

func (*VoteManagerSet) ProtoMessage()

func (*VoteManagerSet) ProtoReflect added in v0.5.8

func (x *VoteManagerSet) ProtoReflect() protoreflect.Message

func (*VoteManagerSet) Reset added in v0.5.8

func (x *VoteManagerSet) Reset()

func (*VoteManagerSet) String added in v0.5.8

func (x *VoteManagerSet) String() string

type VoteMessage

type VoteMessage interface {
	ValidateBasic() error
	GetVoteRoundId() []byte
	GetNullifiers() [][]byte
	GetNullifierType() NullifierType
	// AcceptsTallyingRound returns true if this message type is valid during
	// the TALLYING phase. Only MsgRevealShare returns true.
	AcceptsTallyingRound() bool
}

VoteMessage is an interface that all vote module messages implement, used by the validation pipeline.

type VoteOption

type VoteOption struct {
	Index uint32 `protobuf:"varint,1,opt,name=index,proto3" json:"index,omitempty"` // 0-indexed
	Label string `protobuf:"bytes,2,opt,name=label,proto3" json:"label,omitempty"`  // e.g. "Support", "Oppose"
	// contains filtered or unexported fields
}

VoteOption represents a named choice within a proposal.

func (*VoteOption) Descriptor deprecated

func (*VoteOption) Descriptor() ([]byte, []int)

Deprecated: Use VoteOption.ProtoReflect.Descriptor instead.

func (*VoteOption) GetIndex

func (x *VoteOption) GetIndex() uint32

func (*VoteOption) GetLabel

func (x *VoteOption) GetLabel() string

func (*VoteOption) ProtoMessage

func (*VoteOption) ProtoMessage()

func (*VoteOption) ProtoReflect

func (x *VoteOption) ProtoReflect() protoreflect.Message

func (*VoteOption) Reset

func (x *VoteOption) Reset()

func (*VoteOption) String

func (x *VoteOption) String() string

type VoteRound

type VoteRound struct {
	VoteRoundId       []byte        `protobuf:"bytes,1,opt,name=vote_round_id,json=voteRoundId,proto3" json:"vote_round_id,omitempty"`
	SnapshotHeight    uint64        `protobuf:"varint,2,opt,name=snapshot_height,json=snapshotHeight,proto3" json:"snapshot_height,omitempty"`
	SnapshotBlockhash []byte        `protobuf:"bytes,3,opt,name=snapshot_blockhash,json=snapshotBlockhash,proto3" json:"snapshot_blockhash,omitempty"`
	ProposalsHash     []byte        `protobuf:"bytes,4,opt,name=proposals_hash,json=proposalsHash,proto3" json:"proposals_hash,omitempty"`
	VoteEndTime       uint64        `protobuf:"varint,5,opt,name=vote_end_time,json=voteEndTime,proto3" json:"vote_end_time,omitempty"`
	NullifierImtRoot  []byte        `protobuf:"bytes,6,opt,name=nullifier_imt_root,json=nullifierImtRoot,proto3" json:"nullifier_imt_root,omitempty"`
	NcRoot            []byte        `protobuf:"bytes,7,opt,name=nc_root,json=ncRoot,proto3" json:"nc_root,omitempty"`
	Creator           string        `protobuf:"bytes,8,opt,name=creator,proto3" json:"creator,omitempty"`
	Status            SessionStatus `protobuf:"varint,9,opt,name=status,proto3,enum=svote.v1.SessionStatus" json:"status,omitempty"`
	EaPk              []byte        `protobuf:"bytes,10,opt,name=ea_pk,json=eaPk,proto3" json:"ea_pk,omitempty"` // Election authority public key (Pallas, 32 bytes)
	Proposals         []*Proposal   `protobuf:"bytes,11,rep,name=proposals,proto3" json:"proposals,omitempty"`
	Description       string        `protobuf:"bytes,12,opt,name=description,proto3" json:"description,omitempty"`                                   // Human-readable round description
	CreatedAtHeight   uint64        `protobuf:"varint,13,opt,name=created_at_height,json=createdAtHeight,proto3" json:"created_at_height,omitempty"` // Block height at which this round was registered on-chain
	Title             string        `protobuf:"bytes,14,opt,name=title,proto3" json:"title,omitempty"`                                               // Short human-readable round title
	// Per-round ceremony fields (populated when status = PENDING).
	CeremonyStatus       CeremonyStatus        `` /* 134-byte string literal not displayed */
	CeremonyValidators   []*ValidatorPallasKey `protobuf:"bytes,16,rep,name=ceremony_validators,json=ceremonyValidators,proto3" json:"ceremony_validators,omitempty"`
	CeremonyAcks         []*AckEntry           `protobuf:"bytes,18,rep,name=ceremony_acks,json=ceremonyAcks,proto3" json:"ceremony_acks,omitempty"`
	CeremonyPhaseStart   uint64                `protobuf:"varint,20,opt,name=ceremony_phase_start,json=ceremonyPhaseStart,proto3" json:"ceremony_phase_start,omitempty"`
	CeremonyPhaseTimeout uint64                `protobuf:"varint,21,opt,name=ceremony_phase_timeout,json=ceremonyPhaseTimeout,proto3" json:"ceremony_phase_timeout,omitempty"`
	CeremonyLog          []string              `protobuf:"bytes,22,rep,name=ceremony_log,json=ceremonyLog,proto3" json:"ceremony_log,omitempty"` // Timestamped human-readable ceremony log entries
	// Threshold decryption fields (populated by finalizeDKG).
	// threshold is the minimum number of partial decryptions required to reconstruct the tally.
	// feldman_commitments holds C_j = a_j*G for j=0..t-1 (Feldman polynomial commitments).
	// Validators derive VK_i = EvalCommitmentPolynomial(commitments, i) for share verification.
	Threshold          uint32   `protobuf:"varint,23,opt,name=threshold,proto3" json:"threshold,omitempty"`                                            // Minimum shares for reconstruction (always >= 2)
	FeldmanCommitments [][]byte `protobuf:"bytes,24,rep,name=feldman_commitments,json=feldmanCommitments,proto3" json:"feldman_commitments,omitempty"` // C_j = a_j*G, t compressed Pallas points (32 bytes each)
	// Tally phase timeout fields (populated when status transitions to TALLYING).
	TallyPhaseStart   uint64 `protobuf:"varint,25,opt,name=tally_phase_start,json=tallyPhaseStart,proto3" json:"tally_phase_start,omitempty"`       // Unix seconds when TALLYING started
	TallyPhaseTimeout uint64 `protobuf:"varint,26,opt,name=tally_phase_timeout,json=tallyPhaseTimeout,proto3" json:"tally_phase_timeout,omitempty"` // Timeout duration in seconds (default: 6 hours)
	TallyTimedOut     bool   `protobuf:"varint,27,opt,name=tally_timed_out,json=tallyTimedOut,proto3" json:"tally_timed_out,omitempty"`             // True if round was finalized via timeout (no decrypted results)
	// DKG contributions (populated during Joint-Feldman DKG; replaces single-dealer fields once wired).
	DkgContributions []*DKGContribution `protobuf:"bytes,28,rep,name=dkg_contributions,json=dkgContributions,proto3" json:"dkg_contributions,omitempty"`
	DiscussionUrl    string             `protobuf:"bytes,29,opt,name=discussion_url,json=discussionUrl,proto3" json:"discussion_url,omitempty"` // Overall forum discussion link for the vote round
	// contains filtered or unexported fields
}

VoteRound represents a voting session created by MsgCreateVotingSession.

func (*VoteRound) Descriptor deprecated

func (*VoteRound) Descriptor() ([]byte, []int)

Deprecated: Use VoteRound.ProtoReflect.Descriptor instead.

func (*VoteRound) GetCeremonyAcks

func (x *VoteRound) GetCeremonyAcks() []*AckEntry

func (*VoteRound) GetCeremonyLog

func (x *VoteRound) GetCeremonyLog() []string

func (*VoteRound) GetCeremonyPhaseStart

func (x *VoteRound) GetCeremonyPhaseStart() uint64

func (*VoteRound) GetCeremonyPhaseTimeout

func (x *VoteRound) GetCeremonyPhaseTimeout() uint64

func (*VoteRound) GetCeremonyStatus

func (x *VoteRound) GetCeremonyStatus() CeremonyStatus

func (*VoteRound) GetCeremonyValidators

func (x *VoteRound) GetCeremonyValidators() []*ValidatorPallasKey

func (*VoteRound) GetCreatedAtHeight

func (x *VoteRound) GetCreatedAtHeight() uint64

func (*VoteRound) GetCreator

func (x *VoteRound) GetCreator() string

func (*VoteRound) GetDescription

func (x *VoteRound) GetDescription() string

func (*VoteRound) GetDiscussionUrl added in v0.4.0

func (x *VoteRound) GetDiscussionUrl() string

func (*VoteRound) GetDkgContributions added in v0.4.0

func (x *VoteRound) GetDkgContributions() []*DKGContribution

func (*VoteRound) GetEaPk

func (x *VoteRound) GetEaPk() []byte

func (*VoteRound) GetFeldmanCommitments added in v0.4.0

func (x *VoteRound) GetFeldmanCommitments() [][]byte

func (*VoteRound) GetNcRoot

func (x *VoteRound) GetNcRoot() []byte

func (*VoteRound) GetNullifierImtRoot

func (x *VoteRound) GetNullifierImtRoot() []byte

func (*VoteRound) GetProposals

func (x *VoteRound) GetProposals() []*Proposal

func (*VoteRound) GetProposalsHash

func (x *VoteRound) GetProposalsHash() []byte

func (*VoteRound) GetSnapshotBlockhash

func (x *VoteRound) GetSnapshotBlockhash() []byte

func (*VoteRound) GetSnapshotHeight

func (x *VoteRound) GetSnapshotHeight() uint64

func (*VoteRound) GetStatus

func (x *VoteRound) GetStatus() SessionStatus

func (*VoteRound) GetTallyPhaseStart added in v0.3.1

func (x *VoteRound) GetTallyPhaseStart() uint64

func (*VoteRound) GetTallyPhaseTimeout added in v0.3.1

func (x *VoteRound) GetTallyPhaseTimeout() uint64

func (*VoteRound) GetTallyTimedOut added in v0.3.1

func (x *VoteRound) GetTallyTimedOut() bool

func (*VoteRound) GetThreshold

func (x *VoteRound) GetThreshold() uint32

func (*VoteRound) GetTitle

func (x *VoteRound) GetTitle() string

func (*VoteRound) GetVoteEndTime

func (x *VoteRound) GetVoteEndTime() uint64

func (*VoteRound) GetVoteRoundId

func (x *VoteRound) GetVoteRoundId() []byte

func (*VoteRound) ProtoMessage

func (*VoteRound) ProtoMessage()

func (*VoteRound) ProtoReflect

func (x *VoteRound) ProtoReflect() protoreflect.Message

func (*VoteRound) Reset

func (x *VoteRound) Reset()

func (*VoteRound) String

func (x *VoteRound) String() string

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL