우리가 만든 쇼핑몰을 자체 토큰으로만 결제하게 만들었기때문에
klaytn 으로 자체토큰으로 교환 해서 구입이 가능하다.
그래서 klaytn으로 token 으로 교환하는 코드를 짜야한다.
먼저 클라이언트로 부터 klaytn 을 받아야한다.
먼저 kaikas 로그인 되어 있는지 확인해야 하기때문에
window.klaytn.selectedAddress 로 wallet 을 가져올수 있는지 체크후 undefine 라면
window.klaytn.enable()
를 이용해서 로그인을 요청한다.
로그인을 했다면 입력받은 값과 교환을 원하는 클라이언트에 wallet 을 가져와서
kaikas 에서 보내달라고 한 데이터 형태로 만들어서 요청을 보낼것이다.
From 에 클라이언트 wallet 을 넣어주고
to 에는 우리 관리자의 wallet 을
value 에는 보낼 클레이 적어주어 요청을 보낸다.
receipt 발행되면 거래가 잘 처리 된것이다.
만약 클라이언트가 도주에 취소를 눌렀으면
error 가 나게됨으로 error 가 날때 예외처리도 꼭 해주어야 한다.
이제 klaytn을 받았으니 receipt 이 밣해되었다면
Token 을 보내주어야 한다.
Token 은 백에 요청을 보내어 처리하였다.
이번에도 클라이언트의 wallet 과 보내주어야 할 토큰 수량을 백에 보내주어야한다.
caver-js 를 먼저 install 받아야 한다.
그다음 사진과 같이 설정을 해주어야 한다.
kas _access_key 와 secret key 는 남들이 사용 못하게 .env를 이용해서 가려준다.
이렇게 keyring 을 만들어주어야 한다.
keyring 을 만들어주었다면 사진과 같이 kaikas에서 원하는 데이터 형태로 만들어 주어 요청을 보내어 주면 된다.
caver.kct.kip7 에 토큰의 컨트랙트 주소를 넣어주고 받는 사람의 wallet 과 보낼 양을 넣어주면 된다.
여기서 단위는 1 뒤에 0이 18 개가 있어야 1이다.
우리 토큰은 klaytn 기반이고 klaytn 은 이더리움 기반이기 때문에 단위가 wei 인것이다.
이렇게 작성해서 요청을 보내면
토큰이 보내져있다.
여기서 주의점은 보낼때 gas 가 발생하기 때문에
klaytn 이 꼭 있어야 한다.!!!!
없으면 error 가 나서 안보내 지기 때문에
클라이언트로 부터 klaytn 만 받고 Token 은 안보내면 사기가 되버리니깐...
error 처리 예외처리를 잘 해주어야 한다~!!!