Caver-js로 kip17로 배포된 nft 메타데이터를 가져올 수 있을까요?

kas api없이 프론트엔드에서 klaytn지갑을 사용해서 nft메타데이터를 가져올 수 있는 방법이 있을까요?

caver-js 를 이용해 KIP17의 tokenURI 값을 받아오셔서 그 URI 주소를 json 데이터로 parsing 하시면됩니다.
자세한 사항은 아래문서를 참고해주세요.

연결된 지갑 owner의 tokenId 리스트를 얻을 수 있는 좋은 방법이 있을까요? balanceOf와 tokenOfOwnerByIndex 를 합쳐서 순회하는 방법말고는 보이는 것이 없네요.

해당 과정을 대신 내부적으로 수행해주는 view 전용 컨트랙트를 배포해 사용하시는 방법도 있습니다.

예를들어 아래처럼 구현하시면 js 단에서는 loop없이 정보 얻으실수있습니다.

function allTokenIds(address nftAddress, address walletAddress) external view returns (uint256[] tokenIds) {
IKIP17 kip17 = IKIP17(nftAddress);
uint256 i;
for (i ; i < kip17.balanceOf(walletAddress) ; i++) {
tokenIds[i] = kip17.tokenOfOwnerByIndex(walletAddress, i);
}
}

답변되셨길바랍니다

2 Likes