croncat_sdk_core/internal_messages/
agents.rs1use cosmwasm_schema::cw_serde;
2use cosmwasm_std::{to_binary, Addr, Binary, CosmosMsg, StdResult, WasmMsg};
3
4#[cw_serde]
5pub struct AgentOnTaskCreated {}
6
7#[cw_serde]
8pub struct AgentOnTaskCompleted {
9 pub is_block_slot_task: bool,
10 pub agent_id: Addr,
11}
12
13impl AgentOnTaskCreated {
14 pub fn into_binary(self) -> StdResult<Binary> {
16 let msg = NewTaskMsg::OnTaskCreated(self);
17 to_binary(&msg)
18 }
19
20 pub fn into_cosmos_msg<T: Into<String>>(self, contract_addr: T) -> StdResult<CosmosMsg> {
22 let msg = self.into_binary()?;
23 let execute = WasmMsg::Execute {
24 contract_addr: contract_addr.into(),
25 msg,
26 funds: vec![],
27 };
28 Ok(execute.into())
29 }
30}
31
32#[cw_serde]
33enum NewTaskMsg {
34 OnTaskCreated(AgentOnTaskCreated),
35}
36#[cw_serde]
37pub struct AgentWithdrawOnRemovalArgs {
38 pub agent_id: String,
39 pub payable_account_id: String,
40}