Skip to content

Add faucet-request rate limiter enforcing per-address cooldown #818

Description

@thlpkee20-wq

Description

The testnet faucet must throttle per-address requests to prevent abuse. Enforce a configurable cooldown between requests and reject early requests with a structured error.

Requirements and context

  • Must be secure, tested, and documented
  • Should be efficient and easy to review
  • Relevant code: src/test_faucet_seed.rs
  • Cooldown persisted per address

Suggested execution

  • Fork the repo and create a branch
  • git checkout -b feat/faucet-rate-limit
  • Implement changes
    • Persist last_request_ts per address
    • Reject with FaucetCooldownActive if within cooldown
    • Emit faucet_cooldown_reject event
  • Validate security and correctness assumptions

Test and commit

  • Run tests
    • cargo test --all
  • Cover edge cases
    • Cooldown exactly elapsed
  • Include test output and security notes

Example commit message

feat: add faucet per-address cooldown

Guidelines

  • Minimum 95 percent test coverage
  • Clear documentation
  • Timeframe: 96 hours

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions