1#[cfg(not(feature = "library"))]
2pub mod contract;
3pub mod error;
4pub mod msg;
5pub mod state;
6
7pub type InstantiateMsg = sg721::InstantiateMsg;
8
9pub mod entry {
10 use super::*;
11 use crate::error::ContractError;
12 use crate::msg::QueryMsg;
13 use crate::{
14 contract::{
15 _instantiate, _migrate, execute_enable_updatable, execute_freeze_token_metadata,
16 execute_update_token_metadata, query_enable_updatable, query_enable_updatable_fee,
17 query_frozen_token_metadata, Sg721UpdatableContract,
18 },
19 msg::ExecuteMsg,
20 };
21 use cosmwasm_std::{entry_point, to_json_binary, Empty};
22 use cosmwasm_std::{Binary, Deps, DepsMut, Env, MessageInfo, StdResult};
23 use cw721_base::Extension;
24
25 use sg_std::Response;
26
27 #[entry_point]
28 pub fn instantiate(
29 deps: DepsMut,
30 env: Env,
31 info: MessageInfo,
32 msg: InstantiateMsg,
33 ) -> Result<Response, ContractError> {
34 _instantiate(deps, env, info, msg)
35 }
36
37 #[entry_point]
38 pub fn execute(
39 deps: DepsMut,
40 env: Env,
41 info: MessageInfo,
42 msg: ExecuteMsg<Extension, Empty>,
43 ) -> Result<Response, ContractError> {
44 match msg {
45 ExecuteMsg::FreezeTokenMetadata {} => execute_freeze_token_metadata(deps, env, info),
46 ExecuteMsg::EnableUpdatable {} => execute_enable_updatable(deps, env, info),
47 ExecuteMsg::UpdateTokenMetadata {
48 token_id,
49 token_uri,
50 } => execute_update_token_metadata(deps, env, info, token_id, token_uri),
51 _ => Sg721UpdatableContract::default()
52 .execute(deps, env, info, msg.into())
53 .map_err(|e| e.into()),
54 }
55 }
56
57 #[entry_point]
58 pub fn query(deps: Deps, env: Env, msg: QueryMsg) -> StdResult<Binary> {
59 match msg {
60 QueryMsg::EnableUpdatable {} => to_json_binary(&query_enable_updatable(deps)?),
61 QueryMsg::EnableUpdatableFee {} => to_json_binary(&query_enable_updatable_fee()?),
62 QueryMsg::FreezeTokenMetadata {} => to_json_binary(&query_frozen_token_metadata(deps)?),
63 _ => Sg721UpdatableContract::default().query(deps, env, msg.into()),
64 }
65 }
66
67 #[entry_point]
68 pub fn migrate(deps: DepsMut, env: Env, msg: Empty) -> Result<Response, ContractError> {
69 _migrate(deps, env, msg)
70 }
71}