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