특정 어드레스의 kip17 보유목록을 가져오고 싶습니다


안녕하세요
스크린샷 이미지의 스코프 해당페이지처럼

  • 특정 지갑주소의 KIP17 토큰 보유목록과 개수
  • 특정 지갑주소의 특정 KIP17 컬렉션의 보유 아이디들
    caver.js 에서 위 2가지를 가져오고 싶습니다.

KAS(caver-js-ext-kas)에는 getTokenListByOwner 함수가 있는데
KAS를 통해 배포한 컨트랙트만 접근할 수 있다고 합니다.

찾아보았지만 caver.js에는
kip17.ownerOf 특정 토큰 ID를 소유한 계정의 주소를 반환합니다.
kip17.balanceOf 주어진 계정 주소의 잔액을 반환합니다. 계정의 KIP-17 토큰 잔액이란 이 계정이 소유한 대체 불가 토큰(NFT)의 총 개수입니다.
kip17.tokenOfOwnerByIndex owner 의 토큰 목록에서 주어진 인덱스에 위치한 토큰의 ID를 반환합니다.

kip17에는 이렇게 오너와 관련된 것이 3개밖에 안보이는데
제공되는 3개는 특정하게만 사용할 수 있어서 어떻게 풀어야할지 막힌 상태입니다.
오너로와 컨트랙트로만 호출해서 리스트로 받을 수 있는 함수가 없는건가요?

도움부탁드립니다. 감사합니다.

안녕하세요.

KIP17Enumerable.sol 컨트랙트를 참고하시면됩니다.

Mockcode 형태로 설명드리면 다음과 같은방식으로 구현가능하세요.

var tokenList = []
for (let i; i < myNFT.balanceOf(myAddress); i++) {
tokenList.push(myNFT.tokenOfOwnerByIndex(myAddress, i))
}

console.log("My tokens: ", tokenList)

도움되셨길바래요.

감사합니다.

2 Likes

아 질문에 답이 있었는데 너무 멍청한 질문을 했네요 ㅜㅜ

답변주셔서 정말 감사합니다!!