caver.klay.getBalance(account)
.then(function (balance) {
document.getElementById("myWallet").innerHTML = `지갑주소: ${account}`
document.getElementById("myKlay").innerHTML = `잔액: ${caver.utils.fromPeb(balance, "KLAY")} KLAY`
});
안녕하세요
위 소스를 실행하면 klay 토큰의 잔액을 확인할 수 있는데요
klay 말고 해당 지갑에 들어있는 다른토큰의 목록과 잔액을 확인하려면 어떻게
명령을 내려야 할까요?
경험해보신 선배님들의 조언 부탁드립니다 ㅠ.ㅠ
단순하게 KLAY를 타 토큰명으로 바꿔봤는데 안되네요
ㅠ.ㅠ
안녕하세요.
스마트 컨트랙트로 발행된 토큰의 잔액을 받아오기 위해서는 caver.contract 객체를 사용해서 스마트컨트랙트와 상호작용을 해야합니다. 스마트 컨트랙트의 method 중 balanceOf 메소드를 사용하시면 해당 지갑 주소에 있는 토큰 잔액을 반환 받을 수 있을 것 입니다.
- caver contract 링크: https://ko.docs.klaytn.foundation/dapp/sdk/caver-js/api-references/caver.contract#new-contract
- 만약 KIP-7 토큰이라면 caver.kct.kip7를 사용해서도 가능합니다. 토큰 주소를 사용해서 KIP 7 인스턴스를 생성하시고 balanceOf 함수를 사용하실 수 있습니다.
const kip7 = caver.kct.kip7.create('0x{address in hex}')
kip7.balanceOf('0x{address in hex}').then(console.log)
- 특정 소유자의 토큰 목록 조회를 위해서는 KAS서비스에서 제공하는 API가 있습니다. KAS Reference Documentation 의 getListOfTokenByOwnerAddress함수가 있습니다.
(참고로 KAS관련 질문은 카스 포럼에 남겨주시면 감사하겠습니다. )
감사합니다!
3개의 좋아요
잔액 받아오는거 알려주신데로 해보니 성공했습니다^^
너무너무 감사합니다 OTL
이제 제가 생각했던것들 하나하나씩 해 볼 수 있겠네요
다시한번 감사드립니다^^
한가지만 더 여쭤보겠습니다
지금 결과값 9999999766000 을 받았는데요
보여줘야할 수치는 999,999,976.6 입니다
토큰 자리수는 18자리이고
caver.utils.fromPeb(9999999766000, “KLAY”) 로 했더니
0.000009999999766 나오던데요
어떻게 해야 제대로 표시될 수 있을까요?
위에 적은 함수이외에 따로 존재하는지 궁금합니다
일단 fromPeb(balance2, “peb”) / 1e18 ) 이렇게 해서 나오게 했는데 맞는 방식일까요?
안녕하세요.
각 토큰마다 token decimals가 다르게 설정되어 있을 수 있습니다.
해당 토큰의 decimals를 확인해 보시길 바랍니다.
보여주신 값으로 볼 때 4로 설정되어 있을 것 같습니다.
참고 링크. ERC 20 - OpenZeppelin Docs
감사합니다.
2개의 좋아요