QVE nft
0xDBa3F335f441e99157f29ED478Bf47650663fF1F
이 주어진 코드는 QVEnft라는 스마트 컨트랙트로 ERC721 토큰 (NFT) 기능을 확장하여 작성되었습니다. 주요 기능으로는 NFT의 발행(mint), 잠금(lockup) 기능 변경, NFT의 메타데이터 설정 및 NFT의 소각(burn)이 있습니다.
1. 전체적인 요약 및 설명:
이 컨트랙트는 QVE 플랫폼의 NFT를 관리합니다. 주요 기능으로는 NFT의 발행, 잠금 기간 설정, 메타데이터 변경, 그리고 NFT의 소각 기능이 있습니다. 잠금 기간이란 NFT가 전송될 수 있는 시간을 제한하는 것으로, 사용자가 일정 기간 동안 해당 NFT를 보유하도록 강제하는 기능입니다.
2. Mapping과 변수 (표):
_tokenIds
Counters.Counter
private
새로운 NFT가 발행될 때마다 증가하는 ID
qveToken
QVEtoken
private
QVEtoken의 인스턴스
qveDefiAddress
address
private
QVE DeFi의 주소
_name
string
private
NFT의 이름
_description
string
private
NFT의 설명
_imageUri
string
private
NFT의 이미지 URI
nftDetails
Mapping uint256 -> NftDetail
public
각 NFT의 발행 시간과 잠금 기간 정보
ownedTokens
Mapping address -> uint256[]
public
주소별 소유한 NFT의 목록
3. 함수들을 표로 만들기:
setMetadata
string memory name_, string memory description_, string memory imageUri_
bool
NFT의 메타데이터를 설정
external
mintStakingGuarantee
address staker, bool lockup
uint256
NFT를 발행하고 잠금 기간 설정
external
shortenLockup
uint256 QVEamount, address _qveDefiAddress, uint256 tokenId
bool
QVE 토큰을 사용하여 NFT의 잠금 기간을 줄임
external
_beforeTokenTransfer
address from, address to, uint256 tokenId, uint256 batchSize
-
NFT 전송 전 잠금 기간을 확인
internal
_setQVEdefi
address _qveDefiAddress
bool
qveDefiAddress를 설정
internal
_setLockup
uint256 QVEamount, uint256 tokenId
bool
QVE 토큰의 양에 따라 NFT의 잠금 기간을 설정
internal
tokenURI
uint256 tokenId
string
주어진 NFT의 메타데이터 URI 반환
public
burnNFT (overloaded)
uint256 tokenId
bool
NFT를 소각
external
burnNFT (overloaded)
address nftHolder, uint256 tokenId
bool
특정 주소의 NFT를 소각
external
Last updated