박주니 개발 정리

kaikas sign 본문

react/kaikas

kaikas sign

박주니 2022. 6. 6. 16:00
728x90
반응형

카이카스 서명은 mint 하기 전에 등록하는 단계에서 사용합니다. 이 단계를 진행하기 위해서는 caver-js가 정상적으로 돌아가야함으로 caver-js를 하기 위한 셋팅을 먼저 해주시길 바랍니다. 

1. yarn add caver-js

2. import Caver from "caver-js"

참고자료) kaikas docs 공식 문서 

https://docs.kaikas.io/02_api_reference/02_caver_methods#caver.klay.sign

 

Caver Methods - Kaikas Docs

Unlike caver.klay.sendTransaction, this does not send transaction to blockchain. Instead it returns RLP encoded signed transaction. This is useful for transactions that require multiple signatures(eg. fee delegated tx) where you have to get the signed raw

docs.kaikas.io

  1. await caver.klay.sign(message, wallet_address);caver.klay.sign은 비동기 형식으로 진행을 해야함으로 async function connect(){await caver.klay.sign() } 형식으로 진행되어야합니다.
  2. message, wallet_address 안에 들어갈 내용을 셋팅합니다.
    • message는 공식문서에 따르시면 됩니다. 나중에 협업을 하실 때에는 message 내용에다가 접속자에 wallet_address 및 nonce를 넣어서 한번더 본인인지를 확인합니다. 그부분은 회사마다 다를 수 있으니 참고만 해주시길 바랍니다. 
    •  from 공식문서에는 이렇게 기재되어있을텐데 from은 현재 본인의 카이카스의 연결된 accounts[0]을 물어보는 것이기 때문에 accounts[0]을 대입시키면 됩니다. 
import { React} from "react";
import ".././css/Connect.scss";
import Caver from "caver-js";
function Connect() {

  const { klaytn } = window;
  const caver = new Caver(klaytn);
  async function connect() {
    const accounts = await klaytn.enable();
    if(accounts[0]){
      alert("카이카스 연결된 상태입니다.")
      let wallet_address = accounts[0]
      let message = 'Message to sign'
      await caver.klay.sign(message, wallet_address);
    }
    else{
      alert("카이카스 연결하겠습니다.")
      accounts()
    }

  }

  return (
    <div className="connect-layout">
      <button
        onClick={() => {
          connect();
        }}
      >
        Connect
      </button>
    </div>
  );
}

export default Connect;

참고) 카이카스 서명을 한다는 것은 먼저 조건이 카이카스 연결이 되었을 때를 의미함으로 연결이 된 다음에 진행할 수 있게 셋팅을 합니다. 이해가 안되실 경우에는 먼저 카이카스 연결부터 이해하시고 다시 진행하시면 이해하기 쉬우실겁니다.

 확인) 버튼을 클릭시 해당 화면에 보이는 메시지 서명이 보인다면 정상 실행이 된 것입니다. 

728x90
반응형
Comments