Unique One Network Appchain runtime uses the following pallets to provide the necessary NFT related functions
These modules enable the appchain with Ethereum Solidity smart contracts capability.
This module provides functionality for the runtime to deploy and execute WebAssembly smart-contracts.
This UNet NFT module handles the functions of NFT class/collection creation, NFT token mint, NFT token burn and ownership transfer. This mobule exposes the following extrinsic calls:
pub fn create_class(origin: OriginFor<T>, metadata: NFTMetadata, name: Vec<u8>, description: Vec<u8>, royalty_rate: PerU16, properties: Properties, category_ids: Vec<GlobalId> ) -> DispatchResultWithPostInfo
pub fn destroy_class(origin: OriginFor<T>, class_id: ClassIdOf<T>, dest: <T::Lookup as StaticLookup>::Source ) -> DispatchResultWithPostInfo
pub fn proxy_mint(origin: OriginFor<T>, to: <T::Lookup as StaticLookup>::Source, class_id: ClassIdOf<T>, metadata: NFTMetadata, quantity: TokenIdOf<T>, charge_royalty: Option<PerU16> ) -> DispatchResultWithPostInfo
pub fn transfer(origin: OriginFor<T>, to: <T::Lookup as StaticLookup>::Source, items: Vec<(ClassIdOf<T>, TokenIdOf<T>, TokenIdOf<T>)> ) -> DispatchResultWithPostInfo
pub fn burn(origin: OriginFor<T>, class_id: ClassIdOf<T>, token_id: TokenIdOf<T>, quantity: TokenIdOf<T> ) -> DispatchResultWithPostInfo
pub fn update_token_royalty(origin: OriginFor<T>, class_id: ClassIdOf<T>, token_id: TokenIdOf<T>, charge_royalty: Option<PerU16> ) -> DispatchResultWithPostInfo
pub fn update_token_royalty_beneficiary(origin: OriginFor<T>, class_id: ClassIdOf<T>, token_id: TokenIdOf<T>, to: <T::Lookup as StaticLookup>::Source) -> DispatchResultWithPostInfo