From 4c7eec158f28f5f574f814432c829729d9dbbe12 Mon Sep 17 00:00:00 2001 From: jaime wang Date: Thu, 3 Jul 2025 18:59:16 +0800 Subject: [PATCH 1/3] feat: expire job in request&nego phase --- contracts/acp/ACPSimple.sol | 10 +++++++--- 1 file changed, 7 insertions(+), 3 deletions(-) diff --git a/contracts/acp/ACPSimple.sol b/contracts/acp/ACPSimple.sol index da7c10f..97a9988 100644 --- a/contracts/acp/ACPSimple.sol +++ b/contracts/acp/ACPSimple.sol @@ -250,11 +250,15 @@ contract ACPSimple is } function claimBudget(uint256 id) public nonReentrant { - _claimBudget(id); + Job storage job = jobs[id]; + if (job.phase < PHASE_TRANSACTION && block.timestamp > job.expiredAt) { + _updateJobPhase(id, PHASE_EXPIRED); + } else { + _claimBudget(job); + } } - function _claimBudget(uint256 id) internal { - Job storage job = jobs[id]; + function _claimBudget(Job storage job) internal { uint256 totalFees = jobAdditionalFees[id]; uint256 totalAmount = job.budget + totalFees; require(totalAmount > job.amountClaimed, "No budget to claim"); From 4e439a999c1d2776bb5aec08d7d3aef5381fa45e Mon Sep 17 00:00:00 2001 From: jaime wang Date: Thu, 3 Jul 2025 21:59:26 +0800 Subject: [PATCH 2/3] fix: job id --- contracts/acp/ACPSimple.sol | 1 + 1 file changed, 1 insertion(+) diff --git a/contracts/acp/ACPSimple.sol b/contracts/acp/ACPSimple.sol index 97a9988..a4e2256 100644 --- a/contracts/acp/ACPSimple.sol +++ b/contracts/acp/ACPSimple.sol @@ -259,6 +259,7 @@ contract ACPSimple is } function _claimBudget(Job storage job) internal { + uint256 id = job.id; uint256 totalFees = jobAdditionalFees[id]; uint256 totalAmount = job.budget + totalFees; require(totalAmount > job.amountClaimed, "No budget to claim"); From e30017dca6da5e708c4e2ea279e58f740716a284 Mon Sep 17 00:00:00 2001 From: jaime wang Date: Thu, 3 Jul 2025 22:00:54 +0800 Subject: [PATCH 3/3] fix: job param --- contracts/acp/ACPSimple.sol | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/contracts/acp/ACPSimple.sol b/contracts/acp/ACPSimple.sol index a4e2256..0595be3 100644 --- a/contracts/acp/ACPSimple.sol +++ b/contracts/acp/ACPSimple.sol @@ -232,7 +232,7 @@ contract ACPSimple is phase >= PHASE_COMPLETED && phase <= PHASE_REJECTED ) { - _claimBudget(jobId); + _claimBudget(job); } }