1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
use crate::types::{GasPrice, UpdateConfig};
use cosmwasm_schema::{cw_serde, QueryResponses};
use cosmwasm_std::Uint128;
use croncat_sdk_core::internal_messages::agents::AgentWithdrawOnRemovalArgs;
use croncat_sdk_core::internal_messages::manager::{ManagerCreateTaskBalance, ManagerRemoveTask};
use cw20::Cw20Coin;
#[cw_serde]
pub struct ManagerInstantiateMsg {
pub denom: String,
pub version: Option<String>,
pub croncat_tasks_key: (String, [u8; 2]),
pub croncat_agents_key: (String, [u8; 2]),
pub owner_addr: Option<String>,
pub gas_price: Option<GasPrice>,
pub treasury_addr: Option<String>,
pub cw20_whitelist: Option<Vec<String>>,
}
#[cw_serde]
pub enum ManagerExecuteMsg {
UpdateConfig(Box<UpdateConfig>),
ProxyCall {
task_hash: Option<String>,
},
RefillTaskBalance {
task_hash: String,
},
RefillTaskCw20Balance {
task_hash: String,
cw20: Cw20Coin,
},
Receive(cw20::Cw20ReceiveMsg),
CreateTaskBalance(ManagerCreateTaskBalance),
RemoveTask(ManagerRemoveTask),
OwnerWithdraw {},
UserWithdraw {
limit: Option<u64>,
},
AgentWithdraw(Option<AgentWithdrawOnRemovalArgs>),
}
#[cw_serde]
#[derive(QueryResponses)]
pub enum ManagerQueryMsg {
#[returns(crate::types::Config)]
Config {},
#[returns(cosmwasm_std::Uint128)]
TreasuryBalance {},
#[returns(Vec<cw20::Cw20CoinVerified>)]
UsersBalances {
address: String,
from_index: Option<u64>,
limit: Option<u64>,
},
#[returns(crate::types::TaskBalanceResponse)]
TaskBalance { task_hash: String },
#[returns(cosmwasm_std::Uint128)]
AgentRewards { agent_id: String },
}
#[cw_serde]
pub enum ManagerReceiveMsg {
RefillTempBalance {},
RefillTaskBalance { task_hash: String },
}
#[cw_serde]
pub struct AgentWithdrawCallback {
pub agent_id: String,
pub amount: Uint128,
pub payable_account_id: String,
}