#[registry_query]Expand description
Procedural macro for cw83 standard that automatically needed variants for query messages of account registries.
§Notes
#[registry_query]must be applied before#[cw_serde]or other derives.- Enum must have
#[derive(QueryResponses)]applied to make #[returns] properties valid.
This macro injects a QueryMsg::AccountInfo(...) variant into your query enum,
returning an AccountResponse<T> that contains metadata about a smart account.
Macto takes two optional arguments:
- The first type (optional) is used as the inner query type (e.g.,
QueryParams). Defaults toOption<Binary>. - The second type (optional) is used as the info payload returned by
AccountResponse. Must be serializable Defaults toOption<Empty>.
§Examples
ⓘ
use cw83::registry_query;
use cosmwasm_schema::{cw_serde, QueryResponses};
use cosmwasm_std::{Binary, Empty};
#[registry_query]
#[cw_serde]
#[derive(QueryResponses)]
pub enum RegQuery {
//
// // user-defined queries
//
}
// Generated:
// pub struct AccountResponse<T> {
// pub address: String,
// pub info: Option<T>,
// }
//
// pub enum RegQuery {
//
// // user-defined queries
//
//
// #[returns(AccountResponse)]
// AccountInfo(Option<Empty>),
// }
// With a custom query type:
pub struct QueryParams {
pub custom_pubkey: Option<Binary>,
}
#[registry_query(QueryParams)]
#[cw_serde]
#[derive(QueryResponses)]
pub enum RegQueryParams {
//
// // user-defined queries
//
}
// Generated:
// pub enum RegQueryParams {
//
// // user-defined queries
//
//
// #[returns(AccountResponse)] // same as above
// AccountInfo(QueryParams),
// }
// With custom query type and custom info payload:
// the macro call requires name only and doesn't support syntax of generics
type OptionalBin = Option<Binary>;
#[registry_query(QueryParams, OptionalBin)]
#[cw_serde]
#[derive(QueryResponses)]
pub enum RegQueryCustom {
//
// // user-defined queries
//
}
// Generated:
// pub struct AccountResponse {
// pub address: String,
// pub info: Option<Binary>, // Binary instead of Empty
// }
//
// pub enum RegQueryCustom {
//
// // user-defined queries
//
// #[returns(AccountResponse)]
// AccountInfo(QueryParams),
// }This macro is part of the CW83 spec for account registries.