[질문]
klip의 auth를 통해서 klaytn_address를 구했습니다.
이 klaytn_address로 balance를 구하려면 어떻게 해야 하나요??
[답변]
Klaytn의 Balance를 조회 하는 법. (이 방법은 클레이튼 체인의 네이티브 토큰인 Klaytn만 조회 가능).
-
클립 docs(https://docs.klipwallet.com/ )를 참조하여, 본인의 앱에서 사용하기 가장 유리한 rest api or sdk를 선택함. (필자는 javascript sdk를 사용하였음.)
-
prepare.auth를 통해 request_key를 받아옴.
- pc의 경우 : QR코드를 이용하여 폰 => 웹 앱으로 request_key를 포함하여 응답함.
mobile의 경우 : 딥링크로 카카오톡에 접속하여 request_key를 응답함. (현재, pc 웹앱만 개발중이므로, 모바일에 대한 설명이 미흡합니다.) - pc의 경우 : getResult(${request_key}). 를 하여 klaytn_address를 받아옴. 기억이 잘 안나는데, 결과를 주기적으로 폴링하다가, status가 completed가 되었을 때의 klaytn_address를 받아와야 함.
- pc(javascript)의 경우 : caver-js의 default 객체인 Caver를 이용, new 문법으로 객체를 생성함.(caver.klay - Klaytn Docs )
- caver.klay.getBalance 메소드에 klip으로 구한 klaytn_address를 파라미터로 집어넣어 balance를 구함.
예 )
let klaytn_address = null;
try {
const { request_key } = await prepare.auth();
// 이 request_key로 qrCode로 만들어서 촬영하게 함.
const res = await getResult(request_key);
if (res.status === 'completed') klaytn_address = res.data.klaytn_address;
} catch (e) throw e;
const caver = new Caver(rpcURI);
let balance = null;
try {
balance = await caver.klay.getBalance(klaytn_address);
} catch (e) throw e;
!! balance !!
대충 이런 과정의 수도 코드 입니다. 중간에 address가 없거나, res가 없거나, balance가 없거나 하는 예외는 앱에 맞게 예외처리 하시면 됩니다.