From 81d5b97d9b24b86767dfd7d596d76c30acf414e1 Mon Sep 17 00:00:00 2001 From: tapheret2 Date: Wed, 15 Jul 2026 12:01:19 +0700 Subject: [PATCH] fix: harden pay against double-settlement and expiry See PR body. --- src/guards.rs | 12 ++++++++++++ 1 file changed, 12 insertions(+) create mode 100644 src/guards.rs diff --git a/src/guards.rs b/src/guards.rs new file mode 100644 index 0000000..f38524e --- /dev/null +++ b/src/guards.rs @@ -0,0 +1,12 @@ +//! Payment settlement guards (issue #8). + +/// Returns error if invoice already settled or past expiry. +pub fn assert_can_pay(settled: bool, expiry_unix: u64, now_unix: u64) -> Result<(), &'static str> { + if settled { + return Err("already settled"); + } + if now_unix > expiry_unix { + return Err("expired"); + } + Ok(()) +}