From 11743aa5f5094bd3c978426101515b5fa15ba142 Mon Sep 17 00:00:00 2001 From: schoibs-virtuals Date: Thu, 12 Jun 2025 01:24:59 +0800 Subject: [PATCH 1/3] Handle reject scenario when responding job --- virtuals_acp/client.py | 29 ++++++++++++++++++++--------- 1 file changed, 20 insertions(+), 9 deletions(-) diff --git a/virtuals_acp/client.py b/virtuals_acp/client.py index 6dfa6dc..da78109 100644 --- a/virtuals_acp/client.py +++ b/virtuals_acp/client.py @@ -314,15 +314,26 @@ def respond_to_job_memo( time.sleep(10) print(f"Responding to job {job_id} with memo {memo_id} and accept {accept} and reason {reason}") - self.contract_manager.create_memo( - self.agent_address, - job_id, - f"{reason if reason else f'Job {job_id} accepted.'}", - MemoType.MESSAGE, - is_secured=False, - next_phase=ACPJobPhase.TRANSACTION - ) - print(f"Responded to job {job_id} with memo {memo_id} and accept {accept} and reason {reason}") + if accept: + self.contract_manager.create_memo( + self.agent_address, + job_id, + f"{reason if reason else f'Job {job_id} accepted.'}", + MemoType.MESSAGE, + is_secured=False, + next_phase=ACPJobPhase.TRANSACTION + ) + print(f"Responded to job {job_id} with memo {memo_id} and accept {accept} and reason {reason}") + else: + self.contract_manager.create_memo( + self.agent_address, + job_id, + f"{reason if reason else f'Job {job_id} rejected.'}", + MemoType.MESSAGE, + is_secured=False, + next_phase=ACPJobPhase.REJECTED + ) + print(f"Responded to job {job_id} with memo {memo_id} and accept {accept} and reason {reason}") return tx_hash except Exception as e: print(f"Error in respond_to_job_memo: {e}") From 258358d373f243032e644ad8807403ac24380f7e Mon Sep 17 00:00:00 2001 From: schoibs-virtuals Date: Thu, 12 Jun 2025 01:27:41 +0800 Subject: [PATCH 2/3] Code cleanup --- virtuals_acp/client.py | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/virtuals_acp/client.py b/virtuals_acp/client.py index da78109..7338734 100644 --- a/virtuals_acp/client.py +++ b/virtuals_acp/client.py @@ -323,7 +323,6 @@ def respond_to_job_memo( is_secured=False, next_phase=ACPJobPhase.TRANSACTION ) - print(f"Responded to job {job_id} with memo {memo_id} and accept {accept} and reason {reason}") else: self.contract_manager.create_memo( self.agent_address, @@ -333,7 +332,8 @@ def respond_to_job_memo( is_secured=False, next_phase=ACPJobPhase.REJECTED ) - print(f"Responded to job {job_id} with memo {memo_id} and accept {accept} and reason {reason}") + + print(f"Responded to job {job_id} with memo {memo_id} and accept {accept} and reason {reason}") return tx_hash except Exception as e: print(f"Error in respond_to_job_memo: {e}") From e3095f4bb9dd35001eea4a19780f7d7e0f9fbc87 Mon Sep 17 00:00:00 2001 From: schoibs-virtuals Date: Thu, 12 Jun 2025 01:35:09 +0800 Subject: [PATCH 3/3] Only sign memo if accept job --- virtuals_acp/client.py | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/virtuals_acp/client.py b/virtuals_acp/client.py index 7338734..b3a9c31 100644 --- a/virtuals_acp/client.py +++ b/virtuals_acp/client.py @@ -310,12 +310,12 @@ def respond_to_job_memo( ) -> str: try: - tx_hash = self.contract_manager.sign_memo(self.agent_address, memo_id, accept, reason or "") - time.sleep(10) - print(f"Responding to job {job_id} with memo {memo_id} and accept {accept} and reason {reason}") if accept: - self.contract_manager.create_memo( + self.contract_manager.sign_memo(self.agent_address, memo_id, accept, reason or "") + time.sleep(10) + + transaction_result = self.contract_manager.create_memo( self.agent_address, job_id, f"{reason if reason else f'Job {job_id} accepted.'}", @@ -324,7 +324,7 @@ def respond_to_job_memo( next_phase=ACPJobPhase.TRANSACTION ) else: - self.contract_manager.create_memo( + transaction_result = self.contract_manager.create_memo( self.agent_address, job_id, f"{reason if reason else f'Job {job_id} rejected.'}", @@ -334,7 +334,7 @@ def respond_to_job_memo( ) print(f"Responded to job {job_id} with memo {memo_id} and accept {accept} and reason {reason}") - return tx_hash + return transaction_result except Exception as e: print(f"Error in respond_to_job_memo: {e}") raise