blockchain

caver-js

chanchand 2023. 2. 3. 23:14
반응형

caver-js

개발자가 HTTP 또는 웹 소켓 연결을 사용하여 Klaytn 노드와 상호작용할 수 있도록 하는 자바스크립트 API 라이브러리

npm 이용 가능

 

- HTTP 웹 소켓을 통한 Klaytn의 JOSN-RPC 클라이언트 API의 구현

- Klaytn 트랜잭션, 계정 및 계정 키 유형 지원

- Klaytn 네트워크에서 스마트 컨트랙트를 배포하고 실행하기 위한 자바스크립트 스마트 컨트랙트 패키지

- Klaytn 계정 관리르 위한 메모리 지갑

- 수수료 위임 지원

- Klaytn Wallet 키 형식 지원

- 트랜잭션 객체의 서명

- web3-js 애플리케이션을 caver-js로 쉽게 이식

 

 

패키지

node.js

npm

gcc-c++

solidity compiler

 

 

 

Keyring

Klaytn 계정의 주소와 개인키를 포함하는 구조

 

키 종류에 따라 세 가지로 분류할 수 있다.

- SingleKeyring : 하나의 주소와 하나의 개인키

- MultipleKeyring : 하나의 주소와 여러 개의 개인키

- RoleBasedKeyring : 하나의 주소와 하나 이상의 개인키 

 

 

 

파일생성

$ npm init 
$ npm install caver-js 
$ touch test.js

 

- Baobab 테스트넷 Klaytn 노드 접속

const Caver = require('caver-js')
const caver = new Caver('https://api.baobab.klaytn.net:8651/')

 

- Keyring 생성

const keyring=caver.wallet.keyring.generate()

 

- 개인키로 Keyring 생성

const keyring=caver.wallet.keyring.createFromPrivateKey('0x{private_key}')

 

- caver-js에 Keyring 추가

caver.wallet.add(keyring)
console.log(caver.wallet.getKeyring(keyring.address))

 

- 트랜잭션 전송하기

2단계를 거쳐야 한다.

1. 트랜잭션 서명 : caver.wallet.sign

2. RLP 인코딩된 트랜잭션 서명을 전송 : caver.rpc.klay.sendRawTransaction

// create a value transfer transaction
const valueTransfer=caver.transaction.valueTransfer.create({
    from:'0x{송신자주소}'|keyring.address,
    to:'0x{수신자주소}',
    value:1,
    gas:30000,
})

// 트랜잭션 서명
await caver.wallet.sign(keyring.address, valueTransfer)
const rlpEncoded=valueTransfer.getRLPEncoding()

// 트랜잭션 전송
const receipt=await caver.rpc.klay.sendRawTransaction(rlpEncoded)

 

- 영수증 확인

// Using a promise - async/await
const receipt = await caver.rpc.klay.sendRawTransaction(rawTransaction)
console.log(receipt)

// Using a promise
caver.rpc.klay.sendRawTransaction(rawTransaction).then(console.log)

// Using an event emitter
caver.rpc.klay.sendRawTransaction(rawTransaction).on('receipt', console.log)

// Using a transactionHash
const receipt=await caver.rpc.klay.getTransactionReceipt('0x{transactionHash}')
console.log(receipt)

 

반응형

'blockchain' 카테고리의 다른 글

[Klaytn] 스마트 컨트랙트 배포  (0) 2023.02.09
[Klaytn] EN  (0) 2023.02.09
[Klaytn] CountBApp  (0) 2023.02.05
[Klaytn] Baobab환경-Klay 받기  (0) 2023.02.03
[Klaytn] klaytn 개발환경  (0) 2023.02.03