sg721_nt/msg.rs
1use schemars::JsonSchema;
2use serde::{Deserialize, Serialize};
3use sg721::{RoyaltyInfoResponse, UpdateCollectionInfoMsg};
4
5#[derive(Serialize, Deserialize, Clone, Debug, PartialEq, JsonSchema)]
6#[serde(rename_all = "snake_case")]
7pub enum ExecuteMsg<T> {
8 /// Mint a new NFT, can only be called by the contract minter
9 Mint {
10 /// Unique ID of the NFT
11 token_id: String,
12 /// The owner of the newly minter NFT
13 owner: String,
14 /// Universal resource identifier for this NFT
15 /// Should point to a JSON file that conforms to the ERC721
16 /// Metadata JSON Schema
17 token_uri: Option<String>,
18 /// Any custom extension used by this contract
19 extension: T,
20 },
21 /// Burn an NFT the sender has access to
22 Burn { token_id: String },
23 /// Update collection info
24 UpdateCollectionInfo {
25 new_collection_info: UpdateCollectionInfoMsg<RoyaltyInfoResponse>,
26 },
27 /// Freeze collection info from further updates
28 FreezeCollectionInfo {},
29}