[개발] 클레이튼 관련 지갑 연동-1steemCreated with Sketch.

in SteemCoinPan •  2 months ago 

안녕하세요 @realmankwon입니다.

클레이튼 관련 개발을 하다가 지갑 연동부분을 한번 시도해 보았습니다.
일단 클레이튼 연동에 사용할 수 있는 지갑은 클립, 카이카스, 메타마스크 정도일거라 생각하고 그 중에 클립을 먼저 팠습니다.

https://docs.klipwallet.com/a2a-sdk

네이티브 앱으로 할 것이 아니라서 Javascript SDK를 선택하였습니다.
아래와 같이 npm으로 설치 후 import를 하면 된다고 되어 있는데 프론트에는 잼병이라 js로 이게 가능한가 싶었습니다.
알고보니 리액트 소스였더군요...ㅡ.ㅡ;;;

리액트는 잘 모르니 일단 아래의 js를 추가하고 script에 관련 함수들을 호출하도록 설정하였습니다.

https://docs.klipwallet.com/a2a-sdk/a2a-sdk-js

클립을 사용하기 위해서는 아래의 내용이 핵심입니다.

어떤 행위를 하기 전에 prepare 를 통해서 request_key를 받아옵니다.
이후 받은 request_key로 request 를 호출합니다.
이때 특이한 점은 request는 promise 함수가 아니라서 리턴값을 받아올 수가 없었습니다.
(처음에는 이부분이 이해가 되지 않았는데 나중에 하다보니 이해가 되더군요.)
리턴값을 request 함수를 호출 할 때 입력한 request_key를 getResult 함수에 파라미터로 넘겨서 받아옵니다.
이때 리턴값에는 request_key, expiration_time, status, result 같은 정보를 받습니다.
이때 status 는 prepared, requested, completed, canceled, error 이 있고 completed 시에 result 에서 klaytn_address 값을 받을 수 있습니다.

이번에 한 것은 클립을 통한 지갑 연동이었기에 그 부분을 집중에서 보았습니다.
이때 데스크톱과 모바일 연결로 나눌 수 있습니다.
데스크톱 연결은 QR 코드를 생성하고 이것을 클립에서 QR코드로 인식해서 연동시키게 됩니다.
모바일 연결은 버튼 클릭시에 클립을 실행시켜서 연동시키게 됩니다.

이 둘은 최초에 prepare.auth를 통해서 request_key를 받아오는 것은 동일합니다.

데스크톱은 QR 코드의 데이터에 https://klipwallet.com/?target=/a2a?request_key=${request_key}값을 입력하여 클립에서 QR 코드 인식시에 request를 실행하게 됩니다.
모바일에서는 request(request_key)를 직접 호출시키서 클립앱이 실행 되게 합니다.

이후 getResult(request_key) 을 통해서 인증 결과를 받는 것은 동일합니다.

처음해 보았는데 생각보다 잘되어서 재미가 있었네요.
앞으로 클레이튼에 대해서 좀 더 알아봐야겠습니다.

Authors get paid when people like you upvote their post.
If you enjoyed what you read here, create your account today and start earning FREE STEEM!
Sort Order:  

image.png

Upvoted! Thank you for supporting witness @jswit.

@realmankwon transfered 20.000 KRWP to @krwp.burn. voting percent : 100.00%, voting power : 24.09%, steem power : 2043275.82, STU KRW : 1200.
@realmankwon staking status : 16726.063 KRWP
@realmankwon limit for KRWP voting service : 16.726 KRWP (rate : 0.001)
What you sent : 20.000 KRWP (Voting Percent over 100 %)
Refund balance : 16.558 KRWP [68123593 - 9fcf19775d214873727dfccc4136b8789bb1310d]