일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | |||||
3 | 4 | 5 | 6 | 7 | 8 | 9 |
10 | 11 | 12 | 13 | 14 | 15 | 16 |
17 | 18 | 19 | 20 | 21 | 22 | 23 |
24 | 25 | 26 | 27 | 28 | 29 | 30 |
Tags
- vue
- SCN
- 클레이튼
- 접근제어자
- geth구현
- Solidity
- 서비스체인
- 프레임워크
- 앵커링
- ethereum
- web3.js
- 블록체인
- web3
- kas
- 솔리디티
- 이더리움
- Web
- 제어자
- 블록체인 구조와 이론
- frontend
- Klaytn API Service
- Geth
- blockchain
- 프론트엔드
- API
- Klaytn
- nodejs
- 웹
- javascript
- vue.js
Archives
- Today
- Total
BloCCat
caver-js : 서비스 체인 연동 본문
node js v17.2.0 사용
프로젝트 구조
- main.js : 'libs' 폴더의 caver 함수를 사용하는 main 함수를 담은 파일
- libs : caver-js 를 이용하여 만든 함수(라이브러리)를 모아놓은 폴더
- provider.js : Service Chain 과 연결하는 provider 파일
코드
1. provider.js
require('dotenv').config(); // 전역 변수(.env파일에 선언한 변수)를 사용하기 위함
const Caver = require('caver-js'); //caver-js 객체 선언
const caver = new Caver(process.env.SCN_URL); // Service Chain Provider - server ip:scn port
module.exports = caver;
2. libs/*.js
require('dotenv').config();
const fs = require('fs');
const caver = require('../provider'); // provider.js 에서 export한 caver import
class Example {
...
/*
* scn에서의 송금 트랜잭션 발생
* scn에 있는 account만 허용
*/
sendKlay = async (from,to,value)=> {
try{
const tx = await caver.transaction.valueTransfer.create({
from: from,
to : to,
value : caver.utils.convertToPeb(`${value}`,'KLAY'),
gas : 50000
});
await caver.rpc.klay.sendTransaction(tx).then(console.log);
}catch(err){
console.log(err)
}
}
...
}
const example = new Example()
module.exports = example
3. main.js
const example = require('./libs/example');
const run = ()=>{
...
let readline = require('readline');
let r = readline.createInterface({
input:process.stdin,
output:process.stdout
})
...
r.question('from : ',async (from)=>{
r.question('to : ', async (to)=>{
r.question('value : ', async(value)=>{
keyring.sendKlay(from,to,value);
})
})
});
...
}
run();
실행 & 결과
1. SCN (Service Chain Node) 에서 account 및 잔액 확인
2. node js환경에서 caver-js로 송금 트랜잭션 발생
3.SCN에서 트랜잭션 조회 및 잔액 조회
4. 송금 후 잔액 조회
'Study > 클레이튼' 카테고리의 다른 글
SCN(Service Chain Network) 과 ENN( Endpoint Node Netork) 앵커링 (Anchoring) (0) | 2021.12.11 |
---|---|
EN(Endpotint Node) 구축 (0) | 2021.12.11 |
SCN(Service Chain Network)에서 klay 송금 (0) | 2021.12.10 |
SCN(Service Chain Network) 구축 (0) | 2021.12.10 |
KAS 사용하기 - 기본 세팅 (0) | 2021.09.24 |