Skip to content

feat: harden evidence submissions and remove per-consumer infraction params#16

Draft
Pantani wants to merge 18 commits intomainfrom
feat/review-slash-validation
Draft

feat: harden evidence submissions and remove per-consumer infraction params#16
Pantani wants to merge 18 commits intomainfrom
feat/review-slash-validation

Conversation

@Pantani
Copy link
Contributor

@Pantani Pantani commented Feb 4, 2026

close #5

Description

  • Remove per-consumer infraction_parameters from provider tx/query protos (tags reserved) and CLI JSON examples.
  • Harden SubmitConsumerMisbehaviour / SubmitConsumerDoubleVoting against nil inputs and invalid submitters (avoid panics).
  • Double voting: enforce that the infraction header chain_id matches the stored consumer chain-id, and the header height matches the evidence height.
  • Make repeated double-vote evidence submissions idempotent when the validator is already tombstoned.
  • Misbehaviour handling: validate + log only (no slashing/jailing/tombstoning).
  • Add tests for the new validation paths.

Breaking changes

  • infraction_parameters removed from MsgCreateConsumer, MsgUpdateConsumer, Chain, and QueryConsumerChainResponse.

@Pantani Pantani self-assigned this Feb 4, 2026
@Pantani Pantani changed the title feat: remove per‑consumer infraction params and rely on provider defaults feat: harden evidence submissions and remove per-consumer infraction params Feb 13, 2026
@Pantani Pantani requested a review from Copilot February 19, 2026 15:18
Copy link

Copilot AI left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pull request overview

This PR removes per-consumer infraction parameters from the VAAS provider module and hardens evidence submission handling against malformed inputs. The changes implement validation improvements for double-voting evidence submissions and make misbehaviour handling non-punitive (validate and log only).

Changes:

  • Removed infraction_parameters field from MsgCreateConsumer, MsgUpdateConsumer, Chain, and QueryConsumerChainResponse with proper protobuf field reservation
  • Added nil input validation for evidence submission messages to prevent panics
  • Added chain_id and height matching validation for double-voting evidence submissions
  • Made repeated double-vote evidence submissions idempotent when validator is already tombstoned
  • Changed misbehaviour handling to validate and log only (removed slashing/jailing/tombstoning)

Reviewed changes

Copilot reviewed 18 out of 19 changed files in this pull request and generated 6 comments.

Show a summary per file
File Description
proto/vaas/provider/v1/tx.proto Reserved field 5 and 7 for removed infraction_parameters in MsgCreateConsumer and MsgUpdateConsumer
proto/vaas/provider/v1/query.proto Reserved field 6 and 7 for removed infraction_parameters in Chain and QueryConsumerChainResponse
x/vaas/provider/types/tx.pb.go Generated code for removed infraction_parameters fields
x/vaas/provider/types/query.pb.go Generated code for removed infraction_parameters fields
x/vaas/provider/types/msg.go Added submitter validation, nil misbehaviour check, and height matching validation in ValidateBasic; removed ValidateInfractionParameters function
x/vaas/provider/types/msg_test.go Updated tests to remove infraction_parameters usage
x/vaas/provider/types/submit_msgs_test.go Added new tests for nil misbehaviour validation and height mismatch
x/vaas/provider/keeper/msg_server.go Added extensive nil checks, chain_id validation, and height validation for evidence submissions
x/vaas/provider/keeper/msg_server_test.go Added tests for nil message and header validation
x/vaas/provider/keeper/consumer_equivocation.go Made double-voting idempotent for tombstoned validators; changed misbehaviour to log-only
x/vaas/provider/keeper/grpc_query.go Removed infraction_parameters from query responses
x/vaas/provider/types/keys.go Removed infraction-related key constants; renamed PrioritylistPrefix to PriorityListPrefix
x/vaas/provider/types/errors.go Removed ErrInvalidConsumerInfractionParameters error
x/vaas/provider/client/cli/tx.go Updated CLI examples to remove infraction_parameters
go.mod, go.sum Updated bytedance/sonic dependency from v1.12.7 to v1.15.0
REWRITE_SUMMARY.md, README.md, PLAN.md Updated documentation to reflect removal of per-consumer infraction parameters

💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.

Pantani and others added 3 commits February 19, 2026 16:52
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

Review consumer infraction parameters / slash validator logic

2 participants