Description
This is a smart-contract issue for the GrantFox campaign. Introduce per-developer token-bucket state in vault storage so deducts can be rate-limited at the contract layer as a defense-in-depth backstop.
Requirements and Context
- Bucket size/refill from developer-config
- Reject with RateLimited error when empty
- Refill amortized over ledger ticks
- Test edge cases at boundary
- Must be secure, tested, and documented
- Should be efficient and easy to review
Suggested Execution
- Fork the repo and create a branch
git checkout -b feature/vault-rate-limit
- Implement changes
contracts/vault/src/lib.rs
contracts/vault/src/rate_limit.rs (new)
contracts/vault/src/test.rs
- Test and commit
- Run the repo's standard test suite and lint
- Cover edge cases; include output in the PR
Example commit message
feat: on-chain per-developer rate-limit on vault.deduct
Acceptance Criteria
Guidelines
- Minimum 95% test coverage with
cargo test
require_auth on every state-changing entrypoint
- Overflow-safe math; no
unwrap() in production paths
- Clear NatSpec-style
/// rustdoc
- Timeframe: 96 hours
Description
This is a smart-contract issue for the GrantFox campaign. Introduce per-developer token-bucket state in vault storage so deducts can be rate-limited at the contract layer as a defense-in-depth backstop.
Requirements and Context
Suggested Execution
contracts/vault/src/lib.rscontracts/vault/src/rate_limit.rs (new)contracts/vault/src/test.rsExample commit message
Acceptance Criteria
Guidelines
cargo testrequire_authon every state-changing entrypointunwrap()in production paths///rustdoc