Summary
On Soroban, storage that is not bumped expires and its rent fees are forfeited. The contract accumulates stale participant records, expired credits, and old nonces that bloat instance/persistent storage and increase minimum balance requirements. A pruning function cleans up expired data.
Acceptance Criteria
References
contracts/campaign/src/lib.rs — participant storage
contracts/rewards/src/lib.rs — nonce storage
Summary
On Soroban, storage that is not bumped expires and its rent fees are forfeited. The contract accumulates stale participant records, expired credits, and old nonces that bloat instance/persistent storage and increase minimum balance requirements. A pruning function cleans up expired data.
Acceptance Criteria
prune_expired_participants(env, max_entries: u32)— removes participant records where TTL has passed (batch to avoid gas limits,max_entriescap per call)prune_used_nonces(env, admin, max_entries: u32)— removes nonce records older than 10,000 ledgersprunedevent with countstorage_stats(env) -> (participant_count, nonce_count, expired_estimate)view for monitoringReferences
contracts/campaign/src/lib.rs— participant storagecontracts/rewards/src/lib.rs— nonce storage