Label: complexity: high
Points: 200
Description
If dispute arbitration is implemented (separate issue), an invoice's deadline could pass while a dispute is being arbitrated, triggering an unwanted automatic refund mid-arbitration. This issue freezes the deadline clock during an active dispute.
Technical Context
Involves lib.rs refund() — when checking env.ledger().timestamp() > invoice.deadline, also check a disputed flag (from the dispute arbitration feature) and block refund eligibility entirely while disputed, regardless of how far past the deadline the ledger time has advanced.
Acceptance Criteria
Label: complexity: high
Points: 200
Description
If dispute arbitration is implemented (separate issue), an invoice's deadline could pass while a dispute is being arbitrated, triggering an unwanted automatic refund mid-arbitration. This issue freezes the deadline clock during an active dispute.
Technical Context
Involves
lib.rsrefund()— when checkingenv.ledger().timestamp() > invoice.deadline, also check adisputedflag (from the dispute arbitration feature) and block refund eligibility entirely while disputed, regardless of how far past the deadline the ledger time has advanced.Acceptance Criteria
refund()panics with"invoice under dispute"instead of processing whiledisputed == true, even past the deadlinecargo clippypasses with zero warnings