Skip to content

Validate velocity_window is non-zero when velocity_limit is set #695

Description

@Kingsman-99

Description

velocity_limit and velocity_window together enforce a per-payer spend rate limit. If velocity_window == 0 but velocity_limit > 0, division by zero or undefined behaviour could occur when computing whether a payer has exceeded their limit.

Acceptance Criteria

  • create_invoice returns ContractError::InvalidAmount when velocity_limit > 0 and velocity_window == 0
  • No error when velocity_limit == 0 regardless of velocity_window
  • Unit test verifies rejection for velocity_limit=1000, velocity_window=0
  • Unit test verifies acceptance for velocity_limit=1000, velocity_window=3600
  • cargo test passes

Context

  • Target file: contracts/split/src/lib.rs

Metadata

Metadata

Assignees

Labels

Stellar WaveIssues in the Stellar wave programcomplexity: highComplex feature requiring deep knowledge - 200 ptsenhancementNew feature or request

Type

No type

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions