croncat_manager/
state.rs

1use cosmwasm_schema::cw_serde;
2use cosmwasm_std::{Addr, Uint128};
3use croncat_sdk_manager::types::TaskBalance;
4use cw_storage_plus::{Item, Map};
5
6pub use croncat_sdk_manager::types::Config;
7use croncat_sdk_tasks::types::TaskExecutionInfo;
8
9pub const CONFIG: Item<Config> = Item::new("config");
10
11/// Controls whether or not the contract is paused. Can only be changed to TRUE by
12/// the pause_admin, can only be unpaused by DAO/owner_addr
13pub const PAUSED: Item<bool> = Item::new("paused");
14
15// Accrued Treasury reward balance in native coin
16pub const TREASURY_BALANCE: Item<Uint128> = Item::new("treasury_balance");
17
18// Accrued Agent reward balance in native coin
19pub const AGENT_REWARDS: Map<&Addr, Uint128> = Map::new("agent_rewards");
20
21// Temporary balances of users before task creation.
22// Please do not store your coins for any other use.
23pub const TEMP_BALANCES_CW20: Map<(&Addr, &Addr), Uint128> = Map::new("temp_balances_cw20");
24
25pub const TASKS_BALANCES: Map<&[u8], TaskBalance> = Map::new("tasks_balances");
26
27pub const REPLY_QUEUE: Item<QueueItem> = Item::new("reply_queue");
28
29pub const LAST_TASK_EXECUTION_INFO: Item<TaskExecutionInfo> =
30    croncat_sdk_manager::state::LAST_TASK_EXECUTION_INFO;
31
32/// This struct will keep the task and who is doing it until the last action
33#[cw_serde]
34pub struct QueueItem {
35    pub task: croncat_sdk_tasks::types::TaskInfo,
36    pub agent_addr: Addr,
37    /// Storing any errors that happened to return
38    pub failures: Vec<(u8, String)>,
39}