croncat_sdk_core/internal_messages/
tasks.rs

1use cosmwasm_schema::cw_serde;
2use cosmwasm_std::{to_binary, Binary, CosmosMsg, StdResult, WasmMsg};
3
4#[cw_serde]
5pub struct TasksRemoveTaskByManager {
6    pub task_hash: Vec<u8>,
7}
8
9impl TasksRemoveTaskByManager {
10    /// serializes the message
11    pub fn into_binary(self) -> StdResult<Binary> {
12        let msg = RemoveTaskByManager::RemoveTaskByManager(self);
13        to_binary(&msg)
14    }
15
16    /// creates a cosmos_msg sending this struct to the named contract
17    pub fn into_cosmos_msg<T: Into<String>>(self, contract_addr: T) -> StdResult<CosmosMsg> {
18        let msg = self.into_binary()?;
19        let execute = WasmMsg::Execute {
20            contract_addr: contract_addr.into(),
21            msg,
22            funds: vec![],
23        };
24        Ok(execute.into())
25    }
26}
27
28#[cw_serde]
29pub(crate) enum RemoveTaskByManager {
30    RemoveTaskByManager(TasksRemoveTaskByManager),
31}
32
33#[cw_serde]
34pub struct TasksRescheduleTask {
35    pub task_hash: Vec<u8>,
36}
37
38impl TasksRescheduleTask {
39    /// serializes the message
40    pub fn into_binary(self) -> StdResult<Binary> {
41        let msg = RescheduleTaskMsg::RescheduleTask(self);
42        to_binary(&msg)
43    }
44
45    /// creates a cosmos_msg sending this struct to the named contract
46    pub fn into_cosmos_msg<T: Into<String>>(self, contract_addr: T) -> StdResult<CosmosMsg> {
47        let msg = self.into_binary()?;
48        let execute = WasmMsg::Execute {
49            contract_addr: contract_addr.into(),
50            msg,
51            funds: vec![],
52        };
53        Ok(execute.into())
54    }
55}
56
57#[cw_serde]
58pub(crate) enum RescheduleTaskMsg {
59    RescheduleTask(TasksRescheduleTask),
60}