영상주소: https://www.youtube.com/watch?v=K0luq5uMDmo
소스주소: https://github.com/GoToTheMetaverse/klay-tutorial-v2/tree/main 의 klaytn-07-6폴더입니다.

참고자료

서명방법 코드: https://forum.klaytn.foundation/t/kaikas-sign-list/2395
cdnjs 의 caver-js: https://forum.klaytn.foundation/t/cdnjs-caver-js-cdn/4873

카이카스와 caver-js 를 이용한 검증방법입니다.

유저에게 서명받는 코드 (카이카스 UI 가 뜹니다. 아래쪽에 그림있음)

        const caver = new Caver(window.klaytn);
        console.log("create caver");

        const sig = await caver.klay.sign(1, wallet_addr, "");
        console.log("sig", sig);

        const v = `0x` + sig.substring(2).substring(128, 130);
        const r = `0x` + sig.substring(2).substring(0, 64);
        const s = `0x` + sig.substring(2).substring(64, 128);
        const signature = [v, r, s];
        console.log("signature", signature);

 

서버에서 signature 받아서 검증하는 코드:

let sign_ret = await caver.validator.validateSignedMessage(
    //
    "",
    signature,
    wallet_addr
  );
  console.log("sign_ret", sign_ret);
  // sign_ret: true or false

 

카이카스 메시지 서명 UI

서명란에 메시지가 횡한데 글씨 넣을 방법 없는지 찾고 있습니다.

 

 

 

 

 

 


WRITTEN BY
SIDNFT
게임개발자에서 WEBGL 웹개발자로 전환중

,




이 기능은 이벤트 모니터 라고도 부르고 이벤트 감시기 라고도 부릅니다.
영어로는 watch 나 monitor 라고 부르더군요.

영상주소: https://www.youtube.com/watch?v=HxGpjz9LCc8
소스코드: 
https://github.com/GoToTheMetaverse/klay-tutorial-v2/tree/main klaytn-08-event-monitor 폴더입니다.

이벤트 모니터가 있어야 좀더 괜찮은 서비스를 만들수 있습니다.
스마트컨트렉트는 수정이 안되기 때문에 어려운 기능을 구현하다가 버그라도 생기면 리스크가 크기 때문에 적당히 쉬운 기능을 구현하고 이벤트를 이용해서 외부에서 어려운 기능을 구현하는 편이 수정이 용이 합니다.

이 소스는contract.getPastEvents() 를 활용합니다.
 
contract.events.allEvents() 를 이용하는 코드는 제대로 동작이 안되서 생략했습니다.
참고해주세요

 

디스코드봇과 연동했습니다. 디스코트로와서 구경해보세요

가위바위보 게임 페이지: https://klaytngame-1.gunillee.repl.co/
디스코드 초대링크: https://discord.gg/7REtkPHHJX

 

Join the SIDNFT Discord Server!

Check out the SIDNFT community on Discord - hang out with 10 other members and enjoy free voice and text chat.

discord.com

결과 스샷:

 

추후 개발 예정:
1. 전적관리
2. 웹페이지에 실시간 내역 추가
3. 차트나 그래프 추가

의견있으시면 디스코드로와서 이야기해주세요


WRITTEN BY
SIDNFT
게임개발자에서 WEBGL 웹개발자로 전환중

,




제가 원한 방법은

커멘드에서

npm install caver-js

이렇게 설치하고 코드에서는

import Caver from 'caver-js';

이런식으로 사용하는걸 생각했었는데요
이방식은 제가 예전에쓰던 vue3 preview 에서는 쉽게 동작하더군요 하지만

vue3 / nuxt / svelt 에서는 안되네요
webpack 이 동작해야되는거 같은데 이상하게 안되네요
caver-js 내부에 fs 를 사용하려고 하는데 브라우져 환경이라 이러면 안되는데...

그래도 되는 방식을 찾긴했습니다.

html 코드의 body 밑에

<script 
   type="module"
   src="https://cdnjs.cloudflare.com/ajax/libs/caver-js/1.6.8/caver.min.js"
></script>

넣쿠요 코드에는

const Caver = window.Caver;

이런식으로 사용하면 동작했습니다.
caver-js 버전이 바뀌면 1.6.8 부분을 고쳐야겠지요?
클레이튼에서 공식적으로 운영하는 주소가 아닌문제가 걸리네요


WRITTEN BY
SIDNFT
게임개발자에서 WEBGL 웹개발자로 전환중

,