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
use cosmwasm_schema::{cw_serde, QueryResponses};
use cosmwasm_std::Addr;

#[cw_serde]
pub enum OwnableMsg {
    InitOwnershipTransfer { next_owner: String },
    RevokeOwnershipTransfer {},
    ClaimOwnership {},
}

#[cw_serde]
#[derive(QueryResponses)]
pub enum OwnableQueryMsg {
    #[returns(OwnerResponse)]
    GetOwner {},

    #[returns(PendingOwnerResponse)]
    GetPendingOwner {},
}

#[cw_serde]
pub struct OwnerResponse {
    pub owner: Addr,
}

#[cw_serde]
pub struct PendingOwnerResponse {
    pub pending_owner: Option<Addr>,
}