diff --git a/project_registry/src/lib.rs b/project_registry/src/lib.rs index 12905686..9035b19b 100644 --- a/project_registry/src/lib.rs +++ b/project_registry/src/lib.rs @@ -761,6 +761,10 @@ impl ProjectRegistry { if project.maturity_date > 0 && env.ledger().timestamp() < project.maturity_date { panic_with_error!(&env, RegistryError::ProjectNotMature); } + // Open-ended projects (maturity_date == 0) must be archived before collateral release. + if project.maturity_date == 0 && project.status != types::ProjectStatus::Archived { + panic_with_error!(&env, RegistryError::ProjectNotArchived); + } let key = DataKey::Collateral(project_id, token.clone()); let balance: i128 = env.storage().persistent().get(&key).unwrap_or(0);