From 39b4187277d42201886c5f8d041816b7a21d398c 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 | 12 ++++++++---- 1 file changed, 8 insertions(+), 4 deletions(-) diff --git a/contracts/acp/ACPSimple.sol b/contracts/acp/ACPSimple.sol index c64c695..ee0d903 100644 --- a/contracts/acp/ACPSimple.sol +++ b/contracts/acp/ACPSimple.sol @@ -186,7 +186,7 @@ contract ACPSimple is ); } else if ((oldPhase >= PHASE_TRANSACTION && oldPhase <= PHASE_EVALUATION) && phase >= PHASE_COMPLETED && phase <= PHASE_REJECTED) { - _claimBudget(jobId); + _claimBudget(job); } } @@ -204,11 +204,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 { require(job.budget > job.amountClaimed, "No budget to claim"); uint256 claimableAmount = job.budget - job.amountClaimed; From d1a7eba07b601ea5c16586b2fd72b78f8431b753 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 ee0d903..69dc497 100644 --- a/contracts/acp/ACPSimple.sol +++ b/contracts/acp/ACPSimple.sol @@ -213,6 +213,7 @@ contract ACPSimple is } function _claimBudget(Job storage job) internal { + uint256 id = job.id; require(job.budget > job.amountClaimed, "No budget to claim"); uint256 claimableAmount = job.budget - job.amountClaimed; From eb1f95b09acfaf305c77b81eb04ec0a8c7364c7f 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 | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) diff --git a/contracts/acp/ACPSimple.sol b/contracts/acp/ACPSimple.sol index 69dc497..559430f 100644 --- a/contracts/acp/ACPSimple.sol +++ b/contracts/acp/ACPSimple.sol @@ -184,8 +184,11 @@ contract ACPSimple is address(this), job.budget ); - } else if ((oldPhase >= PHASE_TRANSACTION && oldPhase <= PHASE_EVALUATION) && - phase >= PHASE_COMPLETED && phase <= PHASE_REJECTED) { + } else if ( + (oldPhase >= PHASE_TRANSACTION && oldPhase <= PHASE_EVALUATION) && + phase >= PHASE_COMPLETED && + phase <= PHASE_REJECTED + ) { _claimBudget(job); } }