Skip to main content

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}