Problem
The payment_escrow contract has no explicit, independently-testable release validation function. Release logic is entangled with other contract state, making it impossible to unit test in isolation.
Proposed Solution
Create contracts/cntr/escrow_release.rs implementing pub fn validate_escrow_release(booking_status: &str, dispute_window_expired: bool) -> Result<(), &'static str>. Returns Ok(()) only when booking_status == "COMPLETED" AND dispute_window_expired == true. All implementation must live inside contracts/cntr/.
Acceptance Criteria
Problem
The payment_escrow contract has no explicit, independently-testable release validation function. Release logic is entangled with other contract state, making it impossible to unit test in isolation.
Proposed Solution
Create
contracts/cntr/escrow_release.rsimplementingpub fn validate_escrow_release(booking_status: &str, dispute_window_expired: bool) -> Result<(), &'static str>. ReturnsOk(())only whenbooking_status == "COMPLETED"ANDdispute_window_expired == true. All implementation must live insidecontracts/cntr/.Acceptance Criteria
contracts/cntr/escrow_release.rsErr("Booking not completed")when status is not"COMPLETED"Err("Dispute window still active")whendispute_window_expiredisfalseOk(())only when both conditions are metcargo test