카테고리 없음

klaytn kip7 Token swap

seongjin08 2021. 11. 26. 16:48

 우리가 만든 쇼핑몰을 자체 토큰으로만 결제하게 만들었기때문에

klaytn 으로 자체토큰으로 교환 해서 구입이 가능하다.

그래서 klaytn으로 token 으로 교환하는 코드를 짜야한다.

 먼저 클라이언트로 부터 klaytn 을 받아야한다.

먼저 kaikas 로그인 되어 있는지 확인해야 하기때문에 

window.klaytn.selectedAddress  로 wallet 을 가져올수 있는지 체크후 undefine 라면 

window.klaytn.enable()

를 이용해서 로그인을 요청한다.

로그인을 했다면 입력받은 값과 교환을 원하는 클라이언트에 wallet 을 가져와서 

kaikas 에서 보내달라고 한 데이터 형태로 만들어서 요청을 보낼것이다. 

더보기
window.caver.klay
.sendTransaction({
type: 'VALUE_TRANSFER',
from: window.klaytn.selectedAddress,
to: '0xC04a226684ED39C0341071af53f34E98aFA06156', // 관리자 공개키
value: caver.utils.toPeb(sendKlay, 'KLAY'),
gas: 8000000
})

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 처리 예외처리를 잘 해주어야 한다~!!!