Summary
There is no server endpoint for holders to cast governance votes through the client. A POST /keys/:keyId/proposals/:proposalId/vote endpoint that validates the holder's eligibility, submits the contract call, and persists the vote should be added.
Scope
- Add POST /keys/:keyId/proposals/:proposalId/vote requiring a valid JWT
- Accept optionIndex in the request body and validate it is within the proposal's option range
- Check that the caller has not already voted on the proposal and return 409 if they have
- Submit the cast_vote contract call and write the vote record to proposal_votes
- Return 404 if the proposal does not exist or is already closed
Acceptance Criteria
ETA: 12 hours
Coordinate on Telegram
Summary
There is no server endpoint for holders to cast governance votes through the client. A POST /keys/:keyId/proposals/:proposalId/vote endpoint that validates the holder's eligibility, submits the contract call, and persists the vote should be added.
Scope
Acceptance Criteria
ETA: 12 hours
Coordinate on Telegram