-
Notifications
You must be signed in to change notification settings - Fork 14
Implement Batch Ballot Recording #33
Copy link
Copy link
Open
Labels
GrantFox OSSIssue tracked in GrantFox OSSIssue tracked in GrantFox OSSMaybe RewardedIssue may be eligible for a GrantFox rewardIssue may be eligible for a GrantFox rewardOfficial CampaignCampaign: Official CampaignCampaign: Official CampaignenhancementNew feature or requestNew feature or request
Metadata
Metadata
Assignees
Labels
GrantFox OSSIssue tracked in GrantFox OSSIssue tracked in GrantFox OSSMaybe RewardedIssue may be eligible for a GrantFox rewardIssue may be eligible for a GrantFox rewardOfficial CampaignCampaign: Official CampaignCampaign: Official CampaignenhancementNew feature or requestNew feature or request
Type
Fields
Give feedbackNo fields configured for issues without a type.
��# Issue 15: Implement Batch Ballot Recording
Problem
Recording multiple ballots requires N separate transactions. No batch operation for efficiency.
Solution
record_ballots_batch(ballot_ids: Vec<String>)function in lib.rssorobanRecordBallotsBatch()to invoke batchesImplementation Tasks
record_ballots_batch()in lib.rssorobanRecordBallotsBatch()Note for Contributors
Complete Issue #1 (ballot metadata storage) first. Batch processing must be atomic: either all ballots are recorded or none are (all-or-nothing semantics). Validate all ballots in the batch before writing any, then write all together. Return a Result with all ballot hashes on success, or error on any failure. The batch function should respect the same authorization guards as individual
record_ballotcalls. Limit batch size (e.g., max 100 ballots per call) to prevent resource exhaustion. TypeScript helper should handle retries at the batch level, not individual items. Consider transaction size limits imposed by Soroban.