From 6099f287dd7a1b7e6ded03708d101f03c5ed1f13 Mon Sep 17 00:00:00 2001 From: Victor Edeh Date: Mon, 28 Sep 2026 01:31:52 +0100 Subject: [PATCH] fix(milestones): return errors for archived contributions --- contracts/milestones/src/lib.rs | 14 ++++++++++---- 1 file changed, 10 insertions(+), 4 deletions(-) diff --git a/contracts/milestones/src/lib.rs b/contracts/milestones/src/lib.rs index 673f4cf..fde8943 100644 --- a/contracts/milestones/src/lib.rs +++ b/contracts/milestones/src/lib.rs @@ -206,8 +206,11 @@ impl MilestonesContract { let mut existing_index = None; for i in 0..milestone.contributor_count { let contribution_key = DataKey::Contribution(milestone_id, i); - let contribution: Contribution = - env.storage().persistent().get(&contribution_key).unwrap(); + let contribution: Contribution = env + .storage() + .persistent() + .get(&contribution_key) + .ok_or(Error::ContributionNotFound)?; if contribution.sponsor == sponsor { existing_index = Some(i); break; @@ -234,8 +237,11 @@ impl MilestonesContract { if let Some(index) = existing_index { let contribution_key = DataKey::Contribution(milestone_id, index); - let mut contribution: Contribution = - env.storage().persistent().get(&contribution_key).unwrap(); + let mut contribution: Contribution = env + .storage() + .persistent() + .get(&contribution_key) + .ok_or(Error::ContributionNotFound)?; contribution.amount += actual_received; contribution.timestamp = env.ledger().timestamp(); env.storage()