Description
Computing funded * 10_000 / total (funding completion in basis points) is repeated in multiple places (_pay, auto_resolve, get_invoice_funding_progress, etc.). Extracting it into a single funding_bps(funded: i128, total: i128) -> u32 helper in calc.rs reduces duplication and makes the clamping logic testable in isolation.
Acceptance Criteria
Context
- Target file:
contracts/split/src/calc.rs
Description
Computing
funded * 10_000 / total(funding completion in basis points) is repeated in multiple places (_pay,auto_resolve,get_invoice_funding_progress, etc.). Extracting it into a singlefunding_bps(funded: i128, total: i128) -> u32helper incalc.rsreduces duplication and makes the clamping logic testable in isolation.Acceptance Criteria
pub fn funding_bps(funded: i128, total: i128) -> u32added tocalc.rs0whentotal <= 0[0, 10_000]funded < total,funded == total,funded > totalcargo testpassesContext
contracts/split/src/calc.rs