archid_registry/
msg.rs

1use crate::state::Config;
2use archid_token::{Account, Website};
3use cosmwasm_std::{Addr, Uint128};
4
5use schemars::JsonSchema;
6use serde::{Deserialize, Serialize};
7#[derive(Serialize, Deserialize, Clone, Debug, PartialEq, Eq, JsonSchema)]
8pub struct InstantiateMsg {
9    pub admin: Addr,
10    pub wallet: Addr,
11    pub cw721: Addr,
12    pub base_cost: Uint128,
13    pub base_expiration: u64,
14}
15#[derive(Serialize, Deserialize, Clone, Debug, PartialEq, JsonSchema)]
16pub struct MetaDataUpdateMsg {
17    pub description: Option<String>,
18    pub image: Option<String>,
19    pub accounts: Option<Vec<Account>>,
20    pub websites: Option<Vec<Website>>,
21}
22#[derive(Serialize, Deserialize, Clone, Debug, PartialEq, JsonSchema)]
23#[serde(rename_all = "snake_case")]
24pub enum ExecuteMsg {
25    Register {
26        name: String,
27    },
28    Withdraw {
29        amount: Uint128,
30    },
31    RenewRegistration {
32        name: String,
33    },
34    ExtendSubdomainExpiry {
35        domain: String,
36        subdomain: String,
37        expiration: u64,
38    },
39    UpdateResolver {
40        name: String,
41        new_resolver: Addr,
42    },
43    RegisterSubdomain {
44        domain: String,
45        subdomain: String,
46        new_resolver: Addr,
47        new_owner: Addr,
48        expiration: u64,
49    },
50    RemoveSubdomain {
51        domain: String,
52        subdomain: String,
53    },
54    UpdateConfig {
55        config: Config,
56    },
57    UpdateUserDomainData {
58        name: String,
59        metadata_update: MetaDataUpdateMsg,
60    },
61}
62
63#[derive(Serialize, Deserialize, Clone, Debug, PartialEq, Eq, JsonSchema)]
64#[serde(rename_all = "snake_case")]
65pub struct MigrateMsg {}
66
67#[derive(Serialize, Deserialize, Clone, Debug, PartialEq, Eq, JsonSchema)]
68#[serde(rename_all = "snake_case")]
69pub enum QueryMsg {
70    ResolveRecord { name: String },
71    RecordExpiration { name: String },
72    ResolveAddress { address: Addr },
73    Config {},
74}
75
76#[derive(Serialize, Deserialize, Clone, Debug, PartialEq, Eq, JsonSchema)]
77pub struct ResolveRecordResponse {
78    pub address: Option<String>,
79    pub expiration: u64,
80}
81#[derive(Serialize, Deserialize, Clone, Debug, PartialEq, Eq, JsonSchema)]
82pub struct ResolveAddressResponse {
83    pub names: Option<Vec<String>>,
84}
85#[derive(Serialize, Deserialize, Clone, Debug, PartialEq, Eq, JsonSchema)]
86pub struct RecordExpirationResponse {
87    pub created: u64,
88    pub expiration: u64,
89}