dao_voting_native_staked/
msg.rs1use cosmwasm_schema::{cw_serde, QueryResponses};
2use cosmwasm_std::Uint128;
3use cw_utils::Duration;
4use dao_dao_macros::voting_module_query;
5use dao_interface::state::Admin;
6
7#[cw_serde]
8pub struct InstantiateMsg {
9 pub owner: Option<Admin>,
11 pub manager: Option<String>,
13 pub denom: String,
15 pub unstaking_duration: Option<Duration>,
17}
18
19#[cw_serde]
20pub enum ExecuteMsg {
21 Stake {},
22 Unstake {
23 amount: Uint128,
24 },
25 UpdateConfig {
26 owner: Option<String>,
27 manager: Option<String>,
28 duration: Option<Duration>,
29 },
30 Claim {},
31}
32
33#[voting_module_query]
34#[cw_serde]
35#[derive(QueryResponses)]
36pub enum QueryMsg {
37 #[returns(crate::state::Config)]
38 GetConfig {},
39 #[returns(cw_controllers::ClaimsResponse)]
40 Claims { address: String },
41 #[returns(ListStakersResponse)]
42 ListStakers {
43 start_after: Option<String>,
44 limit: Option<u32>,
45 },
46}
47
48#[cw_serde]
49pub struct MigrateMsg {}
50
51#[cw_serde]
52pub struct ListStakersResponse {
53 pub stakers: Vec<StakerBalanceResponse>,
54}
55
56#[cw_serde]
57pub struct StakerBalanceResponse {
58 pub address: String,
59 pub balance: Uint128,
60}