sg721_updatable/
lib.rs

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}