The method of utilizing Aptos SDK
Last updated
Last updated
Aptos 체인이 가지는 구조와 그에 따른 유얼스 프로토콜 내 기능 구현 방법에 대해서 설명하는 페이지입니다.
Aptos eco-system에서 NFT는 EVM과 달리 mint id로 구분되지 않습니다. 이 페이지는 그에 따른 aptos nft 구조에 대한 이해를 돕기 위한 페이지입니다.
Aptos에는 콜렉션이라는 개념이 존재합니다. 토큰을 식별할 때 콜렉션과 토큰 이름으로 식별합니다. Aptos에서는 특정 콜렉션 안에서 토큰을 발행하도록 하며 각 콜렉션 내에서는 토큰 이름 중복을 허용하지 않습니다.
Aptos의 토큰에는 property_version이라는 것이 존재합니다. property에는 원하는 정보를 key-value형태로 넣을 수 있습니다. property의 정보를 수정하기 위해 mutate_property를 사용합니다. 그 과정에서 property_version이 1씩 증가하며 부여됩니다. property_version이 부여된 토큰을 수정한다면 해당 토큰의 property_version은 변경되지 않습니다.
NFT를 발행하기에 앞서 NFT에 대한 정보를 받습니다.
NFT 이름
NFT 설명
NFT 이미지
혜택 정보
위 NFT 정보를 ipfs에 업로드 후 나온 결과 값으로 토큰을 발행합니다. 각 토큰들의 property key와 value는 하기와 같습니다.
benefitUri : 혜택 URI
indexList: 사용자에게 부여되는 혜택 번호 배열
owner: NFT 소유자
maxPropertyVersion: 토큰의 최대 property_version
NFT가 발행되고 property_version이 1인 토큰은 NFT 메타데이터를 저장합니다. 따라서 메타데이터 수정, 혜택 정보 수정 등의 기능이 수행될 때는 property_version이 1인 토큰 정보를 수정합니다.
NFT이름의 경우, 'NFT이름 #id' 의 형태로 NFT가 발행되는데 그 이유는 Aptos에는 한 콜렉션에 NFT 이름 중복을 허용하지 않기에 사용자에게 NFT 이름 중복을 허용하기 위함입니다.
NFT를 민팅하기에 앞서 NFT 이름과 받고자 하는 사용자의 정보를 받습니다.
property_version이 0인 토큰에 mutate_property를 통해 owner를 수정하고 index_list에 해당 사용자가 몇번의 혜택을 갖는지 저장합니다. 또한 property_version이 1인 토큰의 maxPropertyVersion을 1 증가시켜줍니다. 그 이유는 토큰을 식별하기 위해서 해당 토큰의 property_version이 활용되므로 다음 민팅이 이루어지기 위함입니다.
NFT를 통합하기에 앞서 정보를 받습니다.
owner : 소유자의 정보
uri: 통합 NFT의 이미지 uri
nftNameList: 통합시킬 NFT 이름 배열
propertyVersionList: 통합시킬 NFT의 property_version 배열
새로운 토큰을 발행하는데 해당 토큰의 property_key와 value는 하기와 같습니다.
owner: 소유자의 정보
nameList: 통합시킬 NFT 이름 배열
propertyVersionList: 통합시킬 NFT의 property_version 배열
Yours EVM NFT에서는 통합된 NFT들을 Lock해야 하지만, Aptos SDK에는 burn만이 만들어져 있습니다. 그렇기에 현재 개발자분들의 논의가 이루어지고 있습니다.