Caver-js

haesim·2022년 6월 16일
0

Caver-js 패키지

Caver-js

Klaytn RPC에 연결하여 메인넷과 상호작용을 하기위한 라이브러리이다. 보통 Klaytn SDK 라고도 불린다.

해당 라이브러리를 사용해보기위해 React CRA 환경에서 caver-js를 설치하고 컴파이랗면 에러가 발생한다. 원인은 caver-js에서 사용하는 다양한 패키지(https 등)가 webpack 5 버전 기반으로 되어있지 않기 때문이다.
이를 해결하기 위해서는 npm run eject를 통해서 webpack 설정파일을 빼서 관련 설정을 새로 해줘야한다.
에바기 때문에 Kaikas가 설치되어있으면 내장되어있는 caver 라이브러리를 사용할 수 있다는 점에 착안하여 실습을 진행하였다.

Kaikas - Caver-js

포스팅 시점으로 Kaikas는 1.8.2-rc.2 버전의 Caver를 제공하기에, 우리는 이 내장된 Caver 객체로 트랜잭션을 발생시킬 수 있다.

Version 정보

~ 1.4.1

  1. caver.klay
  2. caver.klay.accounts
  3. caver.klay.Contract
  4. caver.klay.net
  5. caver.klay.abi
  6. caver.utils

1.4.1 ~

  1. caver.account
  2. caver.wallet
  3. caver.wallet.keyring
  4. caver.transaction
  5. caver.rpc
  6. caver.contract
  7. caver.abi
  8. caver.kct
  9. caver.validator
  10. caver.utils
  11. caver.ipfs

패키지 정보(중요도)

caver.account (★★★)

caver.account는 계정 업데이트시 사용 되며 Account에 관련된 기능을 제공하는 패키지입니다.

caver.wallet (★★★★)

인메모리 지갑에서 인스턴스를 관리하는 패키지입니다. caver.wallet는 모든 SingleKeyring, MultipleKeyring, RoleBasedKeyring 을 받으며, 주소를 기준으로 관리합니다.

  • caver.wallet.keyring : 주소와 개인키를 포함하는 키링 관련 기능을 제공하는 패키지입니다.

caver.transaction (★★★★★)

트랜잭션 관련 기능을 제공하는 패키지입니다.

caver.rpc (★★★★★)

Klaytn 노드에 RPC 호출을 하는 기능을 제공하는 패키지입니다.

  • caver.rpc.klay : klaytn 블록체인과 상호작용하는 기능을 제공하는 패키지입니다.
  • caver.rpc.net : 연결된 네트워크 정보를 호출합니다.
  • caver.rpc.governance : 의결과 관련한 기능을 제공합니다.

caver.contract (★★★★)

Klaytn 블록체인과 스마트 컨트랙트 간의 상호작용을 쉽게 만들어 줍니다. 새 컨트랙트 객체를 생성할 때 해당 스마트 컨트랙트를 위해 JSON 인터페이스를 제공해야 하는데, 이때 caver-js가 자바스크립트로 작성된 컨트랙트 객체와의 모든 호출을 RPC를 통해 하위 수준의 ABI 호출로 자동 변환시켜줍니다.
이를 통해 스마트 컨트랙트가 마치 자바스크립트 객체인 것처럼 스마트 컨트랙트와 상호작용할 수 있습니다.

caver.abi (★★)

ABI(Application Binary Interface)의 매개변수를 디코딩 및 인코딩할 수 있게 해줍니다. 배포된 스마트 컨트랙트의 함수를 호출하는 데 사용됩니다.

caver.kct (★★★)

KCT(KIP-7, KIP-17)를 활용하는 데 필요한 caver-js 패키지입니다.
caver.kct.kip7
caver.kct.kip17
caver.kct.kip37

caver.validator (★)

애플리케이션을 구현할 때 사용해야 하는 유효성 검사 기능을 제공합니다

caver.utils (★)

유틸리티 함수를 제공합니다.

caver.ipfs (★)

IPFS (InterPlanetary File System)와 관련된 기능을 제공하는 패키지입니다.

profile
haesim

0개의 댓글