brunch

You can make anything
by writing

C.S.Lewis

by SKKRYPTO Nov 21. 2019

[Skkrypto X Luniverse] Skkvote

안녕하세요 Skkrypto Skkvote팀의 정선웅입니다. 오늘은 저번시간 Wallet API 사용에 이어서 Vault service를 구현해 보겠습니다. 우선 Vault service에 대해 기본적인 내용을 알기 위해서 학회원 박주규님의 글인 https://brunch.co.kr/@skkrypto/55를 참고하시는 것을 추천드립니다! 이 외에도 Luniverse User Guide 에 볼트 서비스 이용하기(https://guide.luniverse.io/docs/%EB%B3%BC%ED%8A%B8%EC%84%9C%EB%B9%84%EC%8A%A4-%EC%9D%B4%EC%9A%A9%ED%95%98%EA%B8%B0)에도 자세한 설명이 나와있습니다


 볼트서비스는 키스토어 파일 분실 위험을 피하기 위해 루니버스가 제공하는 키스토어 파일 저장 서비스 입니다. 이전까지 블록체인을 이용하기 위해서는 키스토어 파일과 개인키가 반드시 필요했는데요. 루니버스는 볼트서비스를 통해 간단히 루니버스 웹 패스워드만으로도 이를 이용할 수 있도록 서비스를 제공합니다. Console 상에서도 이를 해결할 수 있지만 저희는 유저가 Skkvote라는 웹에서 지갑을 만들고 볼트서비스를 이용하는 것을 구현해보았습니다.


Skkvote에서는 Vault API 사용을 위해 

1.     Authorization Token을 획득하고

2.     Vault를 보관하는 것

을 해보겠습니다. 조회나 삭제서비스는 굳이 넣지 않았습니다





조금
  바뀐 저희의 인터페이스입니다. 우선 지갑을 생성한 후에 ‘VAULT 서비스 이용하기’라는 버튼을 통해 Auth Token을 획득하고 ‘VAULT 보관하기’ 버튼을 통해 보관을 해보겠습니다.



Vault 서비스 이용하기와 연결된 JavaScript 부분입니다. 우선 url 과 headers, data부분을 Luniverse API docs에 나온 것처럼 작성해 줍니다. userkey같은 경우는 처음 로그인 시 입력했던 값을 그대로 받아오면 됩니다. 



 성공시에는 true라는 bool값과 token에 string 값으로 Auth Token이 나오게 됩니다. 이것을 시각적으로 보여주기 위해 화면에 띄웠습니다. 

값이 너무 길어서 잘렸지만 구글 크롬에서 Inspect모드로 들어가면 true값이 나온 것을 확인할 수 있고 token이 정상적으로 생성된 것을 알 수 있습니다.

이 token는 ONE_TIME_API_KEY로 지갑이 같아도 매번 다른 token값이 나옵니다. 그렇기에 이 값을 통해서 Vault 보관 기능을 사용할 수 있습니다. 매번 header 부분에 DAPP API KEY를 넣지만 Vault 보관에서는 방금 획득한 ONE_TIME_API_KEY인 Auth token을 사용합니다.


보관하기 버튼과 연결된 keep_click JavaScript 함수입니다. url은 주어진 값을 넣으면 되고 headers에는 아까 받았던 token값을 넣습니다

Data에 조금 새로운 값이 있는데요 API docs를 보면

 


이렇게 encryptedKeystore를 넣으라고 되어있습니다.

 이 부분이 잘 이해가지 않아 console 상에서 질문을 드려보았습니다

루니버스 콘솔에서 유저가이드에 들어가면 오른쪽 아래에 문의하기라는 버튼이 있습니다. 이곳에 이메일 주소와 궁금한점을 질문하면 답변을 빠르게 받을 수 있습니다. 정말 좋은 것 같아요.


“현재 별도의 SDK를 제공하고 있지 않기 때문에 자체적으로 암호화한 값을 전달해주시면 됩니다. 추후 SDK를 지원할 예정입니다”

이런 답변을 받을 수 있었습니다. 그래서 아무런 값이나 넣고 진행하였습니다!




에러가 떠서 확인을 해 보았더니 IP whitelist에 등록된 IP를 사용하면 안된다고 합니다.


 

이부분이 문제였네요. 그래서 다시 다른 IP로 접속을 해 보았습니다



Result 부분이 true가 나오고 정상적으로 보관이 되었다고 나옵니다

중간중간에 사진에 token값이 다른 것은 테스트할 때마다 값이 변경되어서 그런 점 양해 부탁드립니다. 다음주에는 Transaction이 일어나는 부분을 구현해보겠습니다

“위 글은 람다 256 루니버스의 Dev Plan을 무료로 제공받아 작성하였습니다”


작성자: 정선웅(wpdlsksh94@gmail.com)

매거진의 이전글 [Skkrypto X Luniverse] Skkvote
작품 선택
키워드 선택 0 / 3 0
댓글여부
afliean
브런치는 최신 브라우저에 최적화 되어있습니다. IE chrome safari