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
Context
- Target file:
contracts/split/src/lib.rs
Description
velocity_limitandvelocity_windowtogether enforce a per-payer spend rate limit. Ifvelocity_window == 0butvelocity_limit > 0, division by zero or undefined behaviour could occur when computing whether a payer has exceeded their limit.Acceptance Criteria
create_invoicereturnsContractError::InvalidAmountwhenvelocity_limit > 0andvelocity_window == 0velocity_limit == 0regardless ofvelocity_windowvelocity_limit=1000, velocity_window=0velocity_limit=1000, velocity_window=3600cargo testpassesContext
contracts/split/src/lib.rs