Skip to content
This repository was archived by the owner on Mar 18, 2026. It is now read-only.

Commit 25e1eac

Browse files
Merge pull request #430 from aibtcdev/remove-unneeded-funding
remove unneeded funding
2 parents 35ef360 + 09f541e commit 25e1eac

1 file changed

Lines changed: 2 additions & 98 deletions

File tree

app/services/infrastructure/job_management/tasks/agent_account_deployer.py

Lines changed: 2 additions & 98 deletions
Original file line numberDiff line numberDiff line change
@@ -11,7 +11,6 @@
1111
AgentBase,
1212
QueueMessage,
1313
QueueMessageBase,
14-
QueueMessageCreate,
1514
QueueMessageFilter,
1615
QueueMessageType,
1716
WalletFilter,
@@ -36,7 +35,6 @@ class AgentAccountDeployResult(RunnerResult):
3635

3736
accounts_processed: int = 0
3837
accounts_deployed: int = 0
39-
funding_messages_created: int = 0
4038
errors: List[str] = None
4139

4240
def __post_init__(self):
@@ -62,10 +60,6 @@ class AgentAccountDeployerTask(BaseTask[AgentAccountDeployResult]):
6260

6361
QUEUE_TYPE = QueueMessageType.get_or_create("agent_account_deploy")
6462

65-
# Configuration for initial agent funding
66-
DEFAULT_AGENT_FUNDING_AMOUNT = 1 # STX to send to newly deployed agent accounts
67-
DEFAULT_AGENT_FUNDING_FEE = 200 # microSTX transaction fee
68-
6963
def __init__(self, config: Optional[RunnerConfig] = None):
7064
super().__init__(config)
7165

@@ -167,58 +161,13 @@ def _parse_deployment_output(self, output: str) -> Optional[Dict[str, Any]]:
167161
logger.error(f"Failed to parse deployment output: {str(e)}")
168162
return None
169163

170-
def _create_agent_funding_message(
171-
self, contract_principal: str, dao_id: str = None
172-
) -> bool:
173-
"""Create an STX transfer queue message to fund the newly deployed agent account.
174-
175-
Args:
176-
contract_principal: The deployed agent contract address (recipient)
177-
dao_id: Optional DAO ID for tracking
178-
179-
Returns:
180-
bool: True if message was created successfully, False otherwise
181-
"""
182-
try:
183-
# Create STX transfer message to fund the agent account
184-
# Use None for wallet_id so STX transfer task will use the backend wallet
185-
funding_message = QueueMessageCreate(
186-
type=QueueMessageType.get_or_create("stx_transfer"),
187-
wallet_id=None, # STX transfer task will use backend wallet when None
188-
dao_id=dao_id,
189-
message={
190-
"recipient": contract_principal,
191-
"amount": self.DEFAULT_AGENT_FUNDING_AMOUNT,
192-
"fee": self.DEFAULT_AGENT_FUNDING_FEE,
193-
"memo": f"Initial funding for deployed agent account: {contract_principal}",
194-
},
195-
)
196-
197-
# Queue the transfer message
198-
created_message = backend.create_queue_message(funding_message)
199-
logger.info(
200-
f"Created STX funding message {created_message.id} to send {self.DEFAULT_AGENT_FUNDING_AMOUNT} STX "
201-
f"to agent contract {contract_principal}"
202-
)
203-
return True
204-
205-
except Exception as e:
206-
logger.error(
207-
f"Failed to create agent funding message for {contract_principal}: {str(e)}",
208-
exc_info=True,
209-
)
210-
return False
211-
212164
async def process_message(self, message: QueueMessage) -> Dict[str, Any]:
213165
"""Process a single agent account deployment message."""
214166
message_id = message.id
215167
message_data = self._parse_message_data(message.message)
216168

217169
logger.debug(f"Processing agent account deployment message {message_id}")
218170

219-
# Track whether funding was successfully queued
220-
funding_queued = False
221-
222171
try:
223172
# Validate message data
224173
if not self._validate_message_data(message_data):
@@ -401,24 +350,6 @@ async def process_message(self, message: QueueMessage) -> Dict[str, Any]:
401350
f"Updated agent {wallet.agent_id} with contract address: {full_contract_principal}"
402351
)
403352

404-
# Create funding message for the newly deployed agent account
405-
# Uses backend wallet automatically (wallet_id=None)
406-
funding_success = self._create_agent_funding_message(
407-
contract_principal=full_contract_principal,
408-
dao_id=str(message.dao_id)
409-
if message.dao_id
410-
else None,
411-
)
412-
if funding_success:
413-
funding_queued = True
414-
logger.info(
415-
f"Queued initial funding for agent contract: {full_contract_principal}"
416-
)
417-
else:
418-
logger.warning(
419-
f"Failed to queue funding for agent contract: {full_contract_principal}"
420-
)
421-
422353
else:
423354
logger.warning(
424355
f"Wallet {wallet.id} found for address {agent_address} but no associated agent_id"
@@ -624,26 +555,6 @@ async def process_message(self, message: QueueMessage) -> Dict[str, Any]:
624555
f"Updated agent {wallet.agent_id} with existing contract: {full_contract_principal}"
625556
)
626557

627-
# Create funding message for the existing agent account
628-
# Uses backend wallet automatically (wallet_id=None)
629-
funding_success = (
630-
self._create_agent_funding_message(
631-
contract_principal=full_contract_principal,
632-
dao_id=str(message.dao_id)
633-
if message.dao_id
634-
else None,
635-
)
636-
)
637-
if funding_success:
638-
funding_queued = True
639-
logger.info(
640-
f"Queued initial funding for existing agent contract: {full_contract_principal}"
641-
)
642-
else:
643-
logger.warning(
644-
f"Failed to queue funding for existing agent contract: {full_contract_principal}"
645-
)
646-
647558
else:
648559
logger.warning(
649560
f"Wallet {wallet.id} found for address {agent_address} but no associated agent_id"
@@ -677,7 +588,6 @@ async def process_message(self, message: QueueMessage) -> Dict[str, Any]:
677588
"success": True,
678589
"deployed": deployed,
679590
"result": deployment_result,
680-
"funding_queued": funding_queued,
681591
}
682592

683593
# Store result and mark as processed
@@ -768,14 +678,12 @@ async def _execute_impl(
768678
message="No pending messages found",
769679
accounts_processed=0,
770680
accounts_deployed=0,
771-
funding_messages_created=0,
772681
)
773682
]
774683

775684
# Process each message in batches
776685
processed_count = 0
777686
deployed_count = 0
778-
funding_messages_created = 0
779687
errors = []
780688
batch_size = getattr(context, "batch_size", 5)
781689

@@ -793,8 +701,6 @@ async def _execute_impl(
793701
if result.get("success"):
794702
if result.get("deployed", False):
795703
deployed_count += 1
796-
if result.get("funding_queued", False):
797-
funding_messages_created += 1
798704
else:
799705
errors.append(result.get("error", "Unknown error"))
800706

@@ -807,17 +713,15 @@ async def _execute_impl(
807713

808714
logger.info(
809715
f"Agent account deployment completed - Processed: {processed_count}, "
810-
f"Deployed: {deployed_count}, Funding messages created: {funding_messages_created}, "
811-
f"Errors: {len(errors)}"
716+
f"Deployed: {deployed_count}, Errors: {len(errors)}"
812717
)
813718

814719
return [
815720
AgentAccountDeployResult(
816721
success=True,
817-
message=f"Processed {processed_count} account(s), deployed {deployed_count} account(s), created {funding_messages_created} funding message(s)",
722+
message=f"Processed {processed_count} account(s), deployed {deployed_count} account(s)",
818723
accounts_processed=processed_count,
819724
accounts_deployed=deployed_count,
820-
funding_messages_created=funding_messages_created,
821725
errors=errors,
822726
)
823727
]

0 commit comments

Comments
 (0)