반응형
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 |