warp_controller_pkg/
lib.rs1use crate::account::{
2 AccountResponse, AccountsResponse, CreateAccountMsg, QueryAccountMsg, QueryAccountsMsg,
3};
4use crate::job::{
5 CreateJobMsg, DeleteJobMsg, EvictJobMsg, ExecuteJobMsg, JobResponse, JobsResponse, QueryJobMsg,
6 QueryJobsMsg, UpdateJobMsg,
7};
8use cosmwasm_schema::{cw_serde, QueryResponses};
9use cosmwasm_std::{Addr, Uint128, Uint64};
10
11pub mod account;
12pub mod job;
13
14#[cw_serde]
16pub struct Config {
17 pub owner: Addr,
18 pub fee_denom: String,
19 pub fee_collector: Addr,
20 pub warp_account_code_id: Uint64,
21 pub minimum_reward: Uint128,
22 pub creation_fee_percentage: Uint64,
23 pub cancellation_fee_percentage: Uint64,
24 pub resolver_address: Addr,
25 pub t_max: Uint64,
27 pub t_min: Uint64,
29 pub a_max: Uint128,
31 pub a_min: Uint128,
33 pub q_max: Uint64,
35}
36
37#[cw_serde]
38pub struct State {
39 pub current_job_id: Uint64,
40 pub q: Uint64,
42}
43
44#[cw_serde]
46pub struct InstantiateMsg {
47 pub owner: Option<String>,
48 pub fee_denom: String,
49 pub fee_collector: Option<String>,
50 pub warp_account_code_id: Uint64,
51 pub minimum_reward: Uint128,
52 pub creation_fee: Uint64,
53 pub cancellation_fee: Uint64,
54 pub resolver_address: String,
55 pub t_max: Uint64,
56 pub t_min: Uint64,
57 pub a_max: Uint128,
58 pub a_min: Uint128,
59 pub q_max: Uint64,
60}
61
62#[cw_serde]
64pub enum ExecuteMsg {
65 CreateJob(CreateJobMsg),
66 DeleteJob(DeleteJobMsg),
67 UpdateJob(UpdateJobMsg),
68 ExecuteJob(ExecuteJobMsg),
69 EvictJob(EvictJobMsg),
70
71 CreateAccount(CreateAccountMsg),
72
73 UpdateConfig(UpdateConfigMsg),
74
75 MigrateAccounts(MigrateAccountsMsg),
76 MigratePendingJobs(MigrateJobsMsg),
77 MigrateFinishedJobs(MigrateJobsMsg),
78}
79
80#[cw_serde]
81pub struct UpdateConfigMsg {
82 pub owner: Option<String>,
83 pub fee_collector: Option<String>,
84 pub minimum_reward: Option<Uint128>,
85 pub creation_fee_percentage: Option<Uint64>,
86 pub cancellation_fee_percentage: Option<Uint64>,
87 pub t_max: Option<Uint64>,
88 pub t_min: Option<Uint64>,
89 pub a_max: Option<Uint128>,
90 pub a_min: Option<Uint128>,
91 pub q_max: Option<Uint64>,
92}
93
94#[cw_serde]
95pub struct MigrateAccountsMsg {
96 pub warp_account_code_id: Uint64,
97 pub start_after: Option<String>,
98 pub limit: u8,
99}
100
101#[cw_serde]
102pub struct MigrateJobsMsg {
103 pub start_after: Option<Uint64>,
104 pub limit: u8,
105}
106
107#[derive(QueryResponses)]
109#[cw_serde]
110pub enum QueryMsg {
111 #[returns(JobResponse)]
112 QueryJob(QueryJobMsg),
113 #[returns(JobsResponse)]
114 QueryJobs(QueryJobsMsg),
115
116 #[returns(AccountResponse)]
117 QueryAccount(QueryAccountMsg),
118 #[returns(AccountsResponse)]
119 QueryAccounts(QueryAccountsMsg),
120
121 #[returns(ConfigResponse)]
122 QueryConfig(QueryConfigMsg),
123}
124
125#[cw_serde]
126pub struct QueryConfigMsg {}
127
128#[cw_serde]
130pub struct ConfigResponse {
131 pub config: Config,
132}
133
134#[cw_serde]
136pub struct MigrateMsg {
137 pub warp_account_code_id: Uint64,
138 pub resolver_address: String,
139}